使用getClass()编译获取类的错误

时间:2013-04-18 12:30:27

标签: java class boolean javadoc

我正在了解getClass及其运作方式。

我读到了: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

但我真的不明白为什么失败了:

boolean b;
Class c = b.getClass();

有人可以向我解释为什么它会给我一个错误吗?

6 个答案:

答案 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();