黑马程序员技术交流社区

标题: .getClass()和getComponentType()有什么区别 [打印本页]

作者: 刘晓康    时间: 2012-3-31 19:37
标题: .getClass()和getComponentType()有什么区别
getClass();
getComponentType();

都是获得class对象这两个有什么区别呢?
作者: 刘泰    时间: 2012-3-31 20:02
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是基本数据类型

作者: 如梦初醒    时间: 2012-3-31 21:43
调用public Class<?> getComponentType()方法的类必须是一个数组类对象,否者将返回null.
public Class<?> getComponentType()用于判断这个数组类对象里面装的对象的类型信息
也就是相当于判断一个盒子里面装的是什么东西?

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


作者: 曹魁    时间: 2012-3-31 21:58
getClass():返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口。

getComponentType()返回表示数组组件类型的 Class。如果此类不表示数组类,则此方法返回 null。
返回:如果此类是数组,则返回表示此类组件类型的 Class

作者: 胡川    时间: 2012-3-31 22:15
最明显的区别就是.getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的。类的Class类实例是通过.class获得的,显然,类没有.getClass()方法。
作者: 李震 李震 李震    时间: 2012-4-1 01:04
public Class<?> getComponentType()返回表示数组组件类型的 Class。如果此类不表示数组类,则此方法返回 null。
public final Class<?> getClass()返回此 Object 的运行时类。
作者: 袁野    时间: 2012-4-1 07:28
getClass()的使用方式。。。
类名.getClass(): 例如; String.getClass():
对象.getClass():         new Date().getClass():
他们都是获取类的 字节码;每一个类只有一个字节码 部管你new 出多少个对象都没有关系 ,有几个类,酒对应的多少字节码
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
getComponentType()返回表示数组组件类型的 Class。如果此类不表示数组类,则此方法返回 null。
返回:如果此类是数组,则返回表示此类组件类型的 Class




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