1

可能重复:
Java 中的类文字是什么?

我在Java 教程中浏览文字时遇到了这句话:

最后,还有一种特殊的字面量,称为类字面量,由类型名称和附加“.class”组成;例如,String.class。这指的是表示类型本身的对象(Class 类型)。

这对我来说没有任何意义,即使我在此之前关注了所有其他主题。谁能用简单的语言用例子或参考资料来解释?

4

5 回答 5

4

类的实例java.lang.Class表示正在运行的 Java 应用程序中的类和接口。对于应用程序中的每个类,都有一个Class. 语法SomeClass.class是一种从.SomeClassClass

于 2013-01-10T18:18:26.380 回答
2

当您想要做一些涉及类本身而不是实例的事​​情时,类文字只是一种特殊类型。

这是我常用的一些东西的简短列表(一点也不全面,但你可以得到一个好主意)

1.)反射,你想在运行时实例化一些你可能不知道的东西(也许它被存储在一个类类型的变量中)

2.)您想检查 2 个对象是否属于同一相关类型,您可以编写如下内容:B.class.isAssignableFrom(a.getClass());

3.) 您想列出类中的所有方法或公共变量,可能是为了文档。

还有许多其他用途,但这些是我发现自己在常用实践中使用的主要用途。

于 2013-01-10T18:18:24.263 回答
1

说简单的语言:你所说的那个东西class literal是一个对象,它完全描述了一些class:它的所有方法、它的所有字段、它的所有注释、类的修饰符等等。在运行时创建该类的新实例时需要它。

于 2013-01-10T18:15:38.423 回答
0

简短的例子:

    Class x = String.class;
    System.out.println(x);

您可以使用它x来创建它指向的类的运行时实例,或者针对它测试对象的类。

于 2013-01-10T18:18:21.977 回答
0

它评估为引用或原始类型的包装类的类标识符。表达式 void.class 计算为 Void 类的类标识符。与'String.class'相同

于 2013-01-10T19:26:34.187 回答