可能重复:
Java 中的类文字是什么?
我在Java 教程中浏览文字时遇到了这句话:
最后,还有一种特殊的字面量,称为类字面量,由类型名称和附加“.class”组成;例如,
String.class
。这指的是表示类型本身的对象(Class 类型)。
这对我来说没有任何意义,即使我在此之前关注了所有其他主题。谁能用简单的语言用例子或参考资料来解释?
可能重复:
Java 中的类文字是什么?
我在Java 教程中浏览文字时遇到了这句话:
最后,还有一种特殊的字面量,称为类字面量,由类型名称和附加“.class”组成;例如,
String.class
。这指的是表示类型本身的对象(Class 类型)。
这对我来说没有任何意义,即使我在此之前关注了所有其他主题。谁能用简单的语言用例子或参考资料来解释?
类的实例java.lang.Class
表示正在运行的 Java 应用程序中的类和接口。对于应用程序中的每个类,都有一个Class
. 语法SomeClass.class
是一种从.SomeClass
Class
当您想要做一些涉及类本身而不是实例的事情时,类文字只是一种特殊类型。
这是我常用的一些东西的简短列表(一点也不全面,但你可以得到一个好主意)
1.)反射,你想在运行时实例化一些你可能不知道的东西(也许它被存储在一个类类型的变量中)
2.)您想检查 2 个对象是否属于同一相关类型,您可以编写如下内容:B.class.isAssignableFrom(a.getClass());
3.) 您想列出类中的所有方法或公共变量,可能是为了文档。
还有许多其他用途,但这些是我发现自己在常用实践中使用的主要用途。
说简单的语言:你所说的那个东西class literal
是一个对象,它完全描述了一些class
:它的所有方法、它的所有字段、它的所有注释、类的修饰符等等。在运行时创建该类的新实例时需要它。
简短的例子:
Class x = String.class;
System.out.println(x);
您可以使用它x
来创建它指向的类的运行时实例,或者针对它测试对象的类。
它评估为引用或原始类型的包装类的类标识符。表达式 void.class 计算为 Void 类的类标识符。与'String.class'相同