当前位置: 代码迷 >> J2SE >> JAVA 获取引用类型?解决方案
  详细解决方案

JAVA 获取引用类型?解决方案

热度:59   发布时间:2016-04-24 00:42:20.0
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?因为只能拿到……
  相关解决方案