注解类的疑惑

zhangyanwudian 2014-11-27 04:56:07
先看
Class<?>[] clazz = new Class<?>[2];
clazz[0] = Integer.TYPE;
clazz[1] = boolean.class;
for (Class<?> class1 : clazz) {
System.out.println(class1);
}
遍历结果为:int boolean 说明Integer.TYPE是可以放进Class类型数组的

问题来了:定义注解类属性,为什么编译不通过
Class<?>[] clazz() default {boolean.class, Boolean.TYPE, Integer.TYPE};

错误提示:注释属性值。clazz必须类文字
...全文
264 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Runner6587 2014-12-04
  • 打赏
  • 举报
回复
public static final Class<Integer> TYPE = (Class<Integer>) Class.getPrimitiveClass("int"); 这是Integer的源码解释了第一种为什么可以! 泛型不行可能是编译器只认识 .class,我也不是很清楚改成Integer.class就可以!
zhangyanwudian 2014-11-27
  • 打赏
  • 举报
回复
不行,这和泛型没什么关系吧,问题核心是为什么像(Boolean.TYPE, Long.TYPE)Class类型的数据在注解类中放不进Class类型的数组
suciver 2014-11-27
  • 打赏
  • 举报
回复
Class<?>去掉<?>就可以了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧