Java 类是方法还是字段?
java中的任何类都有.class,我想知道.class是否是静态方法?或者它是一个公共静态字段Java 类是方法还是字段?,java,class,Java,Class,java中的任何类都有.class,我想知道.class是否是静态方法?或者它是一个公共静态字段 boolean alwaysTrue = (String.class == Class.forName("java.lang.String")); 两者都不是。 它是一个内置的语言特性(类文字),看起来像一个公共静态最终字段。 两者都不是。它是在编译时对该类的Class对象求值的表达式。当您在类名后编写.Class时,它引用表示给定类的Class对象.class在没有可用的类实例时使用 例如,如果
boolean alwaysTrue = (String.class == Class.forName("java.lang.String"));
两者都不是。它是一个内置的语言特性(类文字),看起来像一个公共静态最终字段。
两者都不是。它是在编译时对该类的
Class
对象求值的表达式。当您在类名后编写.Class
时,它引用表示给定类的Class
对象<代码>.class在没有可用的类实例时使用
例如,如果您的类是Print
(建议类名以大写字母开头),则Print.class
是表示运行时打印类的对象。它是由Print的任何(直接)实例的getClass()方法返回的同一个对象。
Print myPrint = new Print();
System.out.println(Print.class.getName());
System.out.println(myPrint.getClass().getName());
您的问题我已经读了又读了三遍,恐怕我听不懂。@aix:在Java中,所有类(例如,String
)都有一个(.class
)作为该类的实例。例如,String.class==class.forName(“java.lang.String”)
(不包括类加载器之类的边缘案例)。@T.J.Crowder:Oh。我以为他说的是类文件:-)@aix:这不是一件不合理的事情。:-)具体来说,类文字:第三版(当前版)可能是更好的链接;它还提供了比第二版更多的细节。类的实例与表示类类型的对象不同