什么.class在Java中意味着什么?

问题

Java中的.class是什么意思?例如,如果我创建了一个名为Print的类。 Print.class返回什么?


#1 热门回答(105 赞)

当你在类名后面写入.class时,它会引用表示informationaboutgiven类的类文字-java.lang.Classobject。

例如,如果你的类是Print,那么Print.class是表示类Printon运行时的对象。它与任何(直接)实例PrintgetClass()方法返回的对象相同。

Print myPrint = new Print();
System.out.println(Print.class.getName());
System.out.println(myPrint.getClass().getName());

#2 热门回答(40 赞)

当没有可用类的实例时使用.class。
当有一个类的实例可用时,使用.getClass()。

object.getClass()返回给定对象的类。例如:

String string = "hello";
System.out.println(string.getClass().toString());

这将输出

class java.lang.String

这是字符串对象的类:)


#3 热门回答(4 赞)

如果对象的实例可用,那么获取其Class的最简单方法是调用Object.getClass()

The.classSyntax

如果类型可用但没有实例,则可以通过将.class附加到类型名称来获取类。这也是获取基本类型的Class的最简单方法。

boolean b;
Class c = b.getClass();   // compile-time error

Class c = boolean.class;  // correct

请参阅:docs.oracle.com about class