Я использую следующее заявление в Java коде, и я был удивлен, увидев, что он на самом деле составляет:Может кто-нибудь объяснить это использование примитивного типа в generics в Java?
ResponseEntity<byte[]> responseEntity = restTemplate.getForEntity(url.toString(), byte[].class, params);
Сигнатуры этого метода из Документов:
ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> urlVariables)
Я под впечатлением, что вы не можете использовать примитивы в generics в Java. Если да, то как это работает? Является ли это по существу синтаксическим сахаром для чего-то еще, что происходит под капотом? Моя (скорее всего, неверная) догадка заключается в том, что компилятор преобразует byte[]
в Array
и как-то работает с этим. Мне было интересно, может ли кто-нибудь объяснить мне, как и почему это работает.
Другими словами, массивы примитивных значений не являются примитивными типами – Snicolas
А, круто! Спасибо за объяснение - это имеет смысл. ** edit: ** Если вы собираетесь снизить этот ответ, по крайней мере, любезность объяснить, почему. –