黑马程序员技术交流社区

标题: 创建Class引用的一个警告问题 [打印本页]

作者: 吴硕    时间: 2012-10-11 17:54
标题: 创建Class引用的一个警告问题
本帖最后由 吴硕 于 2012-10-11 19:23 编辑

如下创建一个Class引用:
Class c1 = null;    //会报一个警告:Class is a raw type. References to generic type Class<T> should be parameterized

如下创建一个Class引用:
Class<?> c2 = null;    //没有警告

从上两种方式看,是提醒编写者Class类有一个泛型,你最好加上泛型
但警告的第一句是Class is a raw type,这句不明白应该怎么翻译

作者: 柏占肖    时间: 2012-10-11 18:52
java.lang
类 Class<T>
java.lang.Object
  java.lang.Class<T>
类型参数:
T - 由此 Class 对象建模的类的类型。例如,String.class 的类型是 Class<String>。如果将被建模的类未知,则使用 Class<?>。
所有已实现的接口:
Serializable, AnnotatedElement, GenericDeclaration, Type

这是从API中找到的
作者: 黄小贝    时间: 2012-10-11 19:00
没有指定泛型导致的警告,像List  Set 等等如果不指明都会有警告~~如果实在看警告不舒服~

Class<? extends Object>  class1

这样写~~
作者: 杨志男    时间: 2012-10-11 19:06
汉语意思是:“Class类是一个原始类型”。意思就是说它不是个具体类型,定义它时,最好给它定义指定具体类型。当然,也可以不用,只是个警告
作者: 沈佳龙    时间: 2012-10-11 19:17
创建一个Class引用如果不给泛型是可以的,我也赞同楼主的想法,警告只是提醒我们最好给一个泛型,如果没有给泛型,自我感觉默认的应该是class<?>=null;,Class is a raw type文字上面翻译是:类是一个原始类型,也就是说这个class是没有加工的,也是告诉程序员你没有给这个class声明泛型····
作者: 吴硕    时间: 2012-10-11 19:22
本帖最后由 吴硕 于 2012-10-11 19:27 编辑
杨志男 发表于 2012-10-11 19:06
汉语意思是:“Class类是一个原始类型”。意思就是说它不是个具体类型,定义它时,最好给它定义指定具体类 ...

嗯,我体会到了一点
原始类型的意思就是本来最好被参数化的类型,而没有参数化之前的原始状态
作者: 吴硕    时间: 2012-10-11 19:28
沈佳龙 发表于 2012-10-11 19:17
创建一个Class引用如果不给泛型是可以的,我也赞同楼主的想法,警告只是提醒我们最好给一个泛型,如果没有 ...

是这个意思。谢谢




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