iskyshop 2010-01-24 19:17
浏览 234
已采纳

关于泛型类的注入的疑问!

首先有一个类如下:
[code="java"]public class Base {
protected Class entityClass;

public Base() {

}

public Base(Class<T> clz) {
    this.entityClass = clz;
}

}[/code]
这是一个泛型类
有一个Father类:
[code="java"]public class Father {

}[/code]
然后有一个MyBase1:
[code="java"]public class MyBase1 extends Base {

}[/code]
通过泛型类将Father注入到了MyBase1中,现在测试:
[code="java"]MyBase1 mbase=new MyBase1();
System.out.println(mbase.entityCLass);[/code]结果输入为空,这里如果在MyBase1中增加构造函数:
[code="java"]public class MyBase1 extends Base {
public MyBase1(){
super.entityClass=Father.class;
}[/code]这样才能输出结果,请问如果不增加任何构造函数如何实现能够输出System.out.println(mbase.entityCLass)的值为Father呢?而且如果使用了构造函数那么使用有什么意义!盼望高手回答!
}

  • 写回答

4条回答 默认 最新

  • CaiHuajiang 2010-01-24 20:13
    关注

    [code="java"] Type t = this.getClass().getGenericSuperclass();
    if (ParameterizedType.class.isAssignableFrom(t.getClass())) {
    for (Type t1 : ((ParameterizedType) t).getActualTypeArguments()) {
    System.out.print(t1);
    }
    }[/code]

    这个虽然短,我想对你有意义。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料