Java中的MyClass.class代表什么?

Sha*_*ala 3 java

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

MyClass.class.getName();
Run Code Online (Sandbox Code Playgroud)

.class是属性吗?

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

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

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

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

提前致谢.

axt*_*avt 5

MyClass.class是类型的文字值Class(作为相同的方式"..."是类型的文字值String).

它适用于所有类和接口,也适用于原始类型(int.class).

由于Class是通用的,类型MyClass.classClass<MyClass>,所以你可以这样做:

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

方法Class可以在其javadoc中找到.

  • @Shailesh:文字值是源代码中某种类型值的文本表示。所以,`"Hello, world"` 是一个 String 类型的字面值,`42` 是一个 `int` 类型的字面值,`true` 是一个 `boolean` 类型的字面值,等等。 (2认同)