.class是方法还是字段?

2022-09-01 21:56:54

Java中的任何类都有.class,我想知道.class是静态方法还是不是?还是公共静态字段?

boolean alwaysTrue = (String.class == Class.forName("java.lang.String"));

答案 1

两者都不是。
它是一个内置的语言功能(类文字),看起来像一个公共静态最终字段。


答案 2

在类名之后写入时,它将引用表示给定类的对象。 在没有可用的类实例时使用。.classClass.class

例如,如果您的类是(建议类名以大写字母开头),则 是表示运行时 Print 类的对象。它由的任何(直接)实例的方法返回的同一对象PrintPrint.classgetClass()Print.

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