JAVA 获取引用类型?
比如
Java code
public class RestDomain<E>{
private String url;
private E obj;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public E getObj() {
return obj;
}
}
当object 实例化时,obj域指向null,在不给obj引用付值实际对象前,有什么方法可以得到obj引用的类型
效果需要等同于 obj.getClass().getSimpleName();
求高人指点。。。
------解决方案--------------------
RestDomain<E>.getClass().getMethod("getObj").getReturnType().getSimpleName();
------解决方案--------------------
目前应该没有办法拿到的,你只能拿到E,或者拿到Object
这个问题有很多人问过,基本上最后都回放弃这样的思路
因为反射拿到的是编译好的RestDomain<E>的class信息,但是用户定义的变量如RestDomain<String> object,解析器根本没法找到RestDomain<String>的class信息(没有这样的class文件),怎么可能知道E就是String?因为只能拿到RestDomain<E>的class信息(即RestDomain<E>的class文件),所以只能知道E或者泛型擦除变成Object
------解决方案-------------------- 探讨 目前应该没有办法拿到的,你只能拿到E,或者拿到Object 这个问题有很多人问过,基本上最后都回放弃这样的思路 因为反射拿到的是编译好的RestDomain<E>的class信息,但是用户定义的变量如RestDomain<String> object,解析器根本没法找到RestDomain<String>的class信息(没有这样的class文件),怎么可能知道E就是String?因为只能拿到……