A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高鑫 中级黑马   /  2012-7-18 03:54  /  3167 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

isPrimitive
public boolean isPrimitive()判定指定的 Class 对象是否表示一个基本类型。
有九种预定义的 Class 对象,表示八个基本类型和 void。这些类对象由 Java 虚拟机创建,与其表示的基本类型同名,即 boolean、byte、char、short、int、long、float 和 double。

这些对象仅能通过下列声明为 public static final 的变量访问,也是使此方法返回 true 的仅有的几个 Class 对象。
Boolean.TYPE, Character.TYPE, Byte.TYPE, Short.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE, Void.TYPE

---------------------------------------------------------------------------------------
以上是查阅API文档的内容,请问“这些对象仅能通过下列声明为 public static final 的变量访问”这句话是什么意思,能不能举个不能访问的例子给我

3 个回复

倒序浏览
Class<?> getComponentType()方法是Class中的方法,可以返回表示数组类型的Class。
boolean isPrimitive()用来判断指定的Class类是否为一个基本类型。
例:
String [] arr = new String[10];
String str = "";
System.out.println(arr.getClass()); // 数组的String 类
System.out.println(str.getClass()); // 非数组的String 类
System.out.println(arr.getClass().getComponentType()); // String类
System.out.println(str.getClass().getComponentType()); // 得到null值,因为str不是数组
System.out.println(arr.getClass().getComponentType().isPrimitive()); // 显示false,因为String 不是基本数据类型
如果程序改成:
int [] arr = new int[10];
System.out.println(arr.getClass().getComponentType().isPrimitive()); // 显示true,因为int是基本数据类型
回复 使用道具 举报
也就是说,九个基本类型的class同名对象只能通过声明为public static final XXX()这样的方法访问,这个文档由java自动生成的,实际上这是方法的注释,下面是方法的内容,所以他加了“下列”,但实际上文档结束了,有点搞。
回复 使用道具 举报
“这些对象仅能通过下列声明为 public static final 的变量访问”这句话
我字面理解是 int.class 只能让Integer.TYPE访问,请问对不对?如果对的话为什么可以System.out.println(int.class)直接打印int.class呢,这也算是直接访问啊??
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马