小编bWo*_*owk的帖子

从该methods参数的属性获取方法返回类型

我有一个具有内部Class属性的C类:

public class C{
   private Class<?> clazz;

   public void setClazz(Class<?> c){
      this.clazz = c;
   }

   public Class<?> getClazz(){
      return clazz;
   }
}
Run Code Online (Sandbox Code Playgroud)

我想在另一个类中声明一个方法,所以它的返回类型是C.clazz的类型:

public class D{
    public <T> T getInstance(C c){
       //doesn't compile
       //some reflective code to set T to c.getClazz?
       return (c.getClazz.newInstance());
    }
}  
Run Code Online (Sandbox Code Playgroud)

所以,例如,getInstance(c),c将clazz设置为Class<B>,将返回一个新的B实例.有没有办法用反射做到这一点?

java generics

2
推荐指数
1
解决办法
89
查看次数

标签 统计

generics ×1

java ×1