我在我的 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
并以某种方式使用它。我想知道是否有人可以向我解释这是如何以及为什么起作用的。