我遇到了以下形式的代码:
MyClass.class.getName();
.class是属性吗?
适用于所有课程吗? (它是从Object类继承的吗?)
.class返回什么类型的对象?
.class有哪些像getName()这样的函数?
我意识到这是一个非常基本的问题,但我无法在Javadocs中找到全面的信息,如果可以给出.class的一些实际应用,那将非常有用。
提前致谢。
答案 0 :(得分:5)
MyClass.class
是Class
类型的文字值(与"..."
相同,是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()
。