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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘晓康 中级黑马   /  2012-3-31 19:37  /  5157 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

getClass();
getComponentType();

都是获得class对象这两个有什么区别呢?

6 个回复

倒序浏览
String str = new String();
str.getclass 是获得String这个基本类的字节码。
String str = new String();
         System.out.println(str.getClass());
打印的为:class java.lang.String
getComponentType()方法是Class中的方法,可以返回表示数组类型的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是基本数据类型
回复 使用道具 举报
调用public Class<?> getComponentType()方法的类必须是一个数组类对象,否者将返回null.
public Class<?> getComponentType()用于判断这个数组类对象里面装的对象的类型信息
也就是相当于判断一个盒子里面装的是什么东西?

而getClass()方法用来返回对象的类型信息(也就是在内存堆区的那一份唯一的字节码)

回复 使用道具 举报
getClass():返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口。

getComponentType()返回表示数组组件类型的 Class。如果此类不表示数组类,则此方法返回 null。
返回:如果此类是数组,则返回表示此类组件类型的 Class
回复 使用道具 举报
最明显的区别就是.getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的。类的Class类实例是通过.class获得的,显然,类没有.getClass()方法。
回复 使用道具 举报
public Class<?> getComponentType()返回表示数组组件类型的 Class。如果此类不表示数组类,则此方法返回 null。
public final Class<?> getClass()返回此 Object 的运行时类。
回复 使用道具 举报
袁野 黑马帝 2012-4-1 07:28:07
7#
getClass()的使用方式。。。
类名.getClass(): 例如; String.getClass():
对象.getClass():         new Date().getClass():
他们都是获取类的 字节码;每一个类只有一个字节码 部管你new 出多少个对象都没有关系 ,有几个类,酒对应的多少字节码
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
getComponentType()返回表示数组组件类型的 Class。如果此类不表示数组类,则此方法返回 null。
返回:如果此类是数组,则返回表示此类组件类型的 Class
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马