黑马程序员技术交流社区

标题: 求解 int.class 与Integer.cllass 、Integer.TYPE [打印本页]

作者: 谢洋    时间: 2013-2-24 11:03
标题: 求解 int.class 与Integer.cllass 、Integer.TYPE
System.out.println(int.class == Integer.class);//false
System.out.println(int.class == Integer.TYPE);//true
System.out.println(Integer.class == Integer.TYPE);//false

被搞晕了,同一个TPYE是同一分字节码?
作者: 逍林游    时间: 2013-2-24 11:08
一、Integer.TYPE :(int.class)
                返回的是 int (Class<?>)
        
        而
   
二、Integer.class:
                返回是的 Integer 类的对象。

1、我怎么都越想越是觉得都是一样的哈···
2、我下面新建一个 3维 数组:
int[] dim = new int[] { 5, 10, 15 };
// array    是 3维数组.
Object array = Array.newInstance(Integer.TYPE, dim);
//componentType - the Class object representing the component type of the new array
按照JDK 说的
我总感觉应该用 Integer.class
因为我的输出:
    System.out.println(Integer.TYPE); -> outPut:int
    System.out.println(Integer.class); -> outPut:class java.lang.Intege
作者: 王钊    时间: 2013-2-24 11:10
int.class==Integer.TYPE,而Integer.class返回的是Integer类所对应的Class对象。(其他7个原生数据类型同Integer)。
再对应你这道题,一看就明白了。
另外8个原生数据类型为:byte,short,int,long,char,boolean,float,double
它们都有属于自己的对象引用类型:Byte,Short,Integer,Long,Character,Boolean,Float,Double
作者: 胥文    时间: 2013-2-24 11:22

                Class clazz1 = Integer.TYPE;
                Class clazz2 = Integer.class;
                Class clazz3 = int.class;
                System.out.println(clazz1.getName());//表示基本类型 int 的 Class 实例
                System.out.println(clazz2.getName());//表示类Integer的class实例
                System.out.println(clazz3.getName());//表示基本类型 int 的 Class 实例
                System.out.println(clazz1==clazz3);//此处为True
                System.out.println(clazz1==clazz2);//此处为false
作者: 黄嵘才    时间: 2013-2-24 11:58
本帖最后由 esirong 于 2013-2-24 12:07 编辑

Class c = int.class; 或者 Class c = Integer.TYPE;
它们可获得基本类型的类信息。其中后一种方法中访问的是基本类型的封装类 (如 Integer) 中预先定义好的 TYPE 字段。
Integer.TYPE 表示基本类型 int 的 Class 实例。
public static void main(String[] args){
        Integer a = 200;
        Integer b = 400;
        System.out.println(a.TYPE == b.TYPE);
        }

结果是true;
同一个TPYE是同一分字节码




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