我遇到过以下形式的代码:Java中的MyClass.class代表什么?
MyClass.class.getName();
.class属性是什么?
它适用于所有类吗? (它是从Object类继承的吗?)
.class返回什么类型的对象?
.class有哪些像getName()这样的函数?
我意识到这是一个非常基本的问题,但我无法在Javadocs中找到全面的信息,如果可以给出.class的一些实际应用,那将非常有用。
提前致谢。
我遇到过以下形式的代码:Java中的MyClass.class代表什么?
MyClass.class.getName();
.class属性是什么?
它适用于所有类吗? (它是从Object类继承的吗?)
.class返回什么类型的对象?
.class有哪些像getName()这样的函数?
我意识到这是一个非常基本的问题,但我无法在Javadocs中找到全面的信息,如果可以给出.class的一些实际应用,那将非常有用。
提前致谢。
MyClass.class
是Class
类型的文字值(与"..."
是String
类型的文字值相同)。
这适用于所有的类和接口,同时还为基本类型(int.class
)。
由于Class
是通用的MyClass.class
类型为Class<MyClass>
,这样就可以做到这一点:
Class
Class<MyClass> c = MyClass.class;
MyClass o = c.newInstance(); // No cast needed, since newInstance() on Class<T> returns T
方法可以its javadoc找到。
.class
返回对象和是的,它适用于所有类别。是Java核心类。
不,它不是一个属性。 “class”是一个特殊的关键字,您可以使用它来通过名称获取类的Class对象。您可以拨打java.lang.Object.class
,但不能拨打obj.class
。相反,你应该使用obj.getClass()
。
我以前也听说过这个术语'字面值'。仍然有一些问题了解它。您能否请进一步解释,或者向我提供相关信息? – 2011-03-04 08:57:17
@Shailesh:文字值是源代码中某种类型值的文本表示。所以''Hello,world“'是类型为'String'的文字值,'42'是类型为'int'的文字值,'true'是'boolean'类型的文字值。 – axtavt 2011-03-04 09:12:54