Java中的MyClass.class代表什么?

时间:2011-03-03 08:31:38

标签: java

我遇到了以下形式的代码:

MyClass.class.getName();

.class是属性吗?

适用于所有课程吗? (它是从Object类继承的吗?)

.class返回什么类型的对象?

.class有哪些像getName()这样的函数?

我意识到这是一个非常基本的问题,但我无法在Javadocs中找到全面的信息,如果可以给出.class的一些实际应用,那将非常有用。

提前致谢。

3 个答案:

答案 0 :(得分:5)

MyClass.classClass类型的文字值(与"..."相同,是String类型的文字值。)

它适用于所有类和接口,也适用于基本类型(int.class)。

由于Class是通用的,MyClass.class的类型为Class<MyClass>,因此您可以执行此操作:

Class<MyClass> c = MyClass.class;
MyClass o = c.newInstance(); // No cast needed, since newInstance() on Class<T> returns T

Class的方法可以在its javadoc中找到。

答案 1 :(得分:2)

.class返回类Class的对象,是的,它适用于所有类。是Java核心类。

答案 2 :(得分:2)

不,这不是财产。 “class”是一个特殊的关键字,您可以使用它来获取类名称的Class对象。您可以拨打java.lang.Object.class,但不能拨打obj.class。相反,您应该使用obj.getClass()