java - 有人能解释一下 Java 中泛型中原始类型的使用吗?

标签 java generics primitive primitive-types

我在 Java 代码中使用了以下语句,我惊讶地发现它实际上可以编译:

ResponseEntity<byte[]> responseEntity = restTemplate.getForEntity(url.toString(), byte[].class, params);

文档中此方法的签名是:

ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> urlVariables)

我的印象是你不能在 Java 的泛型中使用基元。如果是这样,这是如何运作的?这本质上是幕后发生的其他事情的语法糖吗?我(很可能是错误的)猜测是编译器将 byte[] 转换为 Array 并以某种方式处理它。我想知道是否有人可以向我解释这是如何以及为什么有效的。

最佳答案

我猜,这是因为数组实际上是Java中的对象(引用类型),它们是Object的直接子类型。因此,泛型对它们的作用就像对任何 Java 引用类型一样。

关于java - 有人能解释一下 Java 中泛型中原始类型的使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10506876/

相关文章:

java - contextInitialized() 函数对 Tomcat 9 的依赖性在发出请求之前不会加载

swift - 如何在 Swift 中创建通用的便利初始化器?

java - 这里需要 volatile 吗?

c++ - 什么时候对标量调用 stable_sort()?

java - 如何使用参数 java.lang.reflect.Type 在泛型类中分配类型

java - 原始类型和引用类型有什么区别?

java - 如何替换数组的值?

java - java中的泛型: identify Type of T

java - <receiver> 类未注册从同一应用程序发送的隐式 Intent ?

java - Java中操作Map<Class<?>, Object>时出现的问题