Java 布尔类?

Java 布尔类?,java,Java,前几天我注意到我可以调用boolean.class,但不能调用integer.class(或在其他原语上)。布尔运算有什么特别之处 注意:我说的是boolean.class,不是boolean.class(这很有意义) Duh:我试过integer.class,不是int.class。我不觉得自己很笨吗?\你可以做int.class。它给出的值与整数相同。键入 int.class.isPrimitive(),boolean.class.isPrimitive(),void.class.isPri

前几天我注意到我可以调用boolean.class,但不能调用integer.class(或在其他原语上)。布尔运算有什么特别之处

注意:我说的是boolean.class,不是boolean.class(这很有意义)


Duh:我试过integer.class,不是int.class。我不觉得自己很笨吗?\

你可以做
int.class
。它给出的值与
整数相同。键入


int.class.isPrimitive()
boolean.class.isPrimitive()
void.class.isPrimitive()
等将给出值
true
Integer.class.isPrimitive()
Boolean.class.isPrimitive()
等将给出一个值
false

,您也可以执行类似
int.class
的操作

System.out.println(int.class);
Java1.1引入了.class关键字,以便以一致的方式获取类类型和基本数据类型的类对象


布尔值并不特别。你可以打电话

int.class
比如说。所有基元类型都具有此文本。来自Sun的:

最后,还有一种特殊的文本,称为类文本,它是由类型名和附加“.class”组成的;例如,String.class。这是指表示类型本身的对象(类类型)


不是
integer.class
,而是
int.class
。是的,你可以。JRE 6:

public class TestTypeDotClass{
    public static void main(String[] args) {
        System.out.println(boolean.class.getCanonicalName());
        System.out.println(int.class.getCanonicalName());
        System.out.println(float.class.getCanonicalName());
        System.out.println(Boolean.class.getCanonicalName());
    }
}
输出

boolean
int
float
java.lang.Boolean

可能是哑延续,但为什么可以将boolean.class分配给类,尽管哈希代码不同

final Class<Boolean> c = boolean.class;     
System.out.println("c := "+c);
System.out.println("boolean.class := "+boolean.class);
System.out.println("Boolean.class := "+Boolean.class);
System.out.println("boolean.class == Boolean.class := "+(boolean.class == Boolean.class));
System.out.println("boolean.class.equals(Boolean.class) := "+boolean.class.equals(Boolean.class));
System.out.println("boolean.class.hashCode := "+boolean.class.hashCode());
System.out.println("Boolean.class.hashCode := "+Boolean.class.hashCode());
final Class c=boolean.Class;
System.out.println(“c:=”+c);
System.out.println(“boolean.class:=”+boolean.class);
System.out.println(“Boolean.class:=”+Boolean.class);
System.out.println(“boolean.class==boolean.class:=”+(boolean.class==boolean.class));
System.out.println(“boolean.class.equals(boolean.class):=”+boolean.class.equals(boolean.class));
System.out.println(“boolean.class.hashCode:=”+boolean.class.hashCode());
System.out.println(“Boolean.class.hashCode:=”+Boolean.class.hashCode());

因为
boolean.class
的类型是
class
。原语不能用作类型参数,因此没有类型
。最好不要将问题作为答案提交。这应该是它自己的问题,或者是对其他答案之一的评论。