我正在了解getClass
及其运作方式。
我读到了: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
但我真的不明白为什么失败了:
boolean b;
Class c = b.getClass();
有人可以向我解释为什么它会给我一个错误吗?
答案 0 :(得分:3)
boolean b;
是一种原始数据类型,您无法使用。运算符调用其上的方法,请尝试Boolean b
; Boolean是原始boolean
的包装类。
试试这个:
Boolean b = null;
Class c = b.getClass();
或更好
Boolean b = null;
Class<? extends Boolean> c = b.getClass();
答案 1 :(得分:0)
您的变量b
的类型为boolean
,这是一种基本类型。原始类型不是对象,因此,你无法获得他们的类。
答案 2 :(得分:0)
因为boolean
不是对象。无法调用boolean
答案 3 :(得分:0)
b - 是原始的,你不能在上面调用getClass。它不是一个对象
答案 4 :(得分:0)
因为你正在使用原语boolean
。对象Boolean
答案 5 :(得分:0)
您无法在原始数据类型上调用getClass()方法。 这将为您提供诀窍
Boolean b;//Change it to Boolean wrapper class
Class c = b.getClass();