System.out.println(Byte.TYPE==byte.class);    //true   IDE的自动感知提示Byte.TYPE的引用类型是Class<Byte>
而IDE的自动感知提示byte.class的类型是Class<byte>难道多态了?????

解决方案 »

  1.   

    应该是自动装箱。  Byte是包装类型   byte是基本类型  (Byte.TYPE==byte.class)这里在作比较的时候 肯定是将byte基本类型 装箱为Byte包装类型。因为只有基本类型本身是不能通过 == 进行比较的。
      

  2.   

    Byte.TYPE 
    表示基本类型 byte 的 Class 实例。 
    byte.class
    而bype.class就是byte的class实例。
    那么什么叫byte的class实例呢,class类的实例表示正在运行的 Java 应用程序中的类和接口
    类的实例一些常用信息包括,
    类或接口的所有可访问公共字段tyte.class.getFields()
    类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法tyte.class.getMethods()
    以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。tyte.class.getName()
    获取此类的包。tyte.class.getPackage() 
           
      

  3.   

    我确实比较初级。。刚刚我看了一下Thinking in Java,然后运行了一下这个System.out.println(Byte.TYPE == Byte.class); // false已经知道.TYPE和.class是不同的了。但是呢,又出来一个新问题。我知道怎么引用.class返回的对象:
    Class<Byte> cb = Byte.class;但是不会引用.TYPE返回的对象
    Class<byte> o = Byte.TYPE;//这么写出错谁来告诉我一下 谢谢
      

  4.   

    Byte.Type -->byte
    Byte.class -->class java.lang.Byte public static void main(String[] args) {
    // TODO Auto-generated method stub Class<Byte> o  = Byte.TYPE;
    System.out.println("Byte.Type -->" + o) ;

    Class<Byte> b = Byte.class ;

    System.out.println("Byte.class -->" + b) ;

    }没有问题啊?  不知道是哪里? 
      

  5.   

    哦??两个全用的是Class<Byte>  我引用.TYPE的时候写成小byte了
      

  6.   

    (1)
    Byte.class:代表的是Byte的字节码
    Byte.TYPE:代表的是Byte这个类里面的一个成员变量,TYPE,可以查看源代码:/**
         * The <code>Class</code> instance representing the primitive type
         * <code>byte</code>.
         */
        public static final Class<Byte> TYPE = (Class<Byte>) Class.getPrimitiveClass("byte");(2)泛型不支持基本类型
      

  7.   


    System.out.println(Byte.TYPE == Byte.class); // false
    System.out.println(Byte.TYPE == byte.class);//true
    Byte.TYPE: 代表的是byte的字节码
    Byte.class:代表的是Byte的字节码
      

  8.   

    无基础类型的泛型,即无Class<byte>,Class<int>.....这些类型
      

  9.   

    .TYPE和.class的类型都是Class<BYTE> 但是System.out.println(Byte.TYPE == Byte.class); // false
    恩恩。。很奇妙
      

  10.   

    看源码即知:public static final Class<Byte> TYPE = (Class<Byte>) Class.getPrimitiveClass("byte");
    这个字段本来获取的就是byte.class,但是苦于byte.class无法用Class的泛型表示出来,于是