黑马程序员技术交流社区

标题: java怎么对泛型指定的类执行反射操作 [打印本页]

作者: 刘宏庆    时间: 2011-7-25 13:04
标题: java怎么对泛型指定的类执行反射操作
最近想做一个小框架,目的是想把List<Model>直接翻译到JTable中。方法是通过在Model中定义和显示列相关的Annotation,然后对Annotation进行解析。但是在编写代码的时候遇到问题,问题如下:
public DreamTableModel(List<? extends AbstractModel> list) {   
Field[] fields =  (? extends AbstractModel).class.getClass().getFields();   
}  
其中【 (? extends AbstractModel).class】行编译不过去。用什么方法可以解决呢?
作者: 匿名    时间: 2011-7-25 14:44
。。。。?是和object差不多的关系,能继承么,我觉得你可以把?改为T试下
作者: 匿名    时间: 2011-7-25 14:46
....我看不懂,那个没返回值,是构造方法么,代码贴全一点。。。
作者: 匿名    时间: 2011-7-25 14:50
java确实不支持对不确定类型做class操作,张老师视频里面也提到过这个
用[code=java]List <AbstractModel> list [/code]来代替这个吧[code=java]List<? extends AbstractModel> list [/code]最好继承这个AbstractModel,再存到List里面
作者: 匿名    时间: 2011-7-25 15:51
(? extends AbstractModel).class暂且不讨论可不可以这样写,但是在这行语句中,
       Field[] fields =  (? extends AbstractModel).class.getClass().getFields();   
        (? extends AbstractModel).class已经是字节码了,而又去getClass(),得到的是Calss类的字节码吧,是想要这份字节码吗?貌似不是吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2