java - Java 中的 int.class 包含什么?为什么它甚至有效?

标签 java

在 Java 中,像 int.class 这样的原语有一个类文字是有效的。在 Java 中引入 auto boxing 功能之前是否允许这样做?我们从 int.class 中得到的对象实际上包含什么?为什么有效?

最佳答案

int 不是类,所以 int.class 没有意义。

原因是他们很便宜,使用一个Class 来表示所有类型。因此,例如,Method.getReturnType() 返回一个 Class,它实际上可以代表一个类、原始类型、数组,甚至是 void。

在泛型出现之前,这很好,因为没有太多种类的类型。在泛型之后,事情变得非常困惑,新的 Type 层次结构就更没有意义了,因为它合并了旧的困惑的 Class;结果,Types 树看起来与语言规范中的类型树完全不同。

关于java - Java 中的 int.class 包含什么?为什么它甚至有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14943348/

相关文章:

java - 如果我尝试在 Activity 中打开 fragment ,应用程序会崩溃

java - 基于套接字的应用程序的非确定性行为

java - Apache Camel 使用 Apache Camel 的 Spring WebFlux 功能性 Web Rest API

java - 使用 Map<String,Object> 字段反序列化 Avro 中的对象会返回错误类的值

java - Gradle 分发创建文件

java - eclipse :Tomcat: Failed to read candidate component class:

java - 使用计数登录桌面应用程序

java - 在没有 IDE 的情况下在 Java 中导入 javax 包

java - SOAP 消息的输入参数的大小限制是多少

java - 读取文件,一次一行并运行代码