java中的任何类都有.class,我想知道.class是否是一个静态方法?或者它是一个公共静态字段?
boolean alwaysTrue = (String.class == Class.forName("java.lang.String"));
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 33
它既不是.
它是一个内置语言功能(类文字),看起来像一个公共静态最终字段.
小智 11
在.class类名后面写时,它引用Class代表给定类的对象..class当没有可用类的实例时使用.
例如,如果您的类是Print(建议类名以大写字母开头),那么它Print.class是一个表示运行时Print类的对象.它是由getClass()任何(直接)实例的方法返回的相同对象Print.
Print myPrint = new Print();
System.out.println(Print.class.getName());
System.out.println(myPrint.getClass().getName());
Run Code Online (Sandbox Code Playgroud)
https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.8.2
两者都不是。它是在编译时评估Class该类的对象的表达式。