我用我的Java代碼下面的語句,我很驚訝地看到,它實際上編譯:有人可以解釋一下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
,並以某種方式適用於此。我想知道是否有人可以向我解釋如何以及爲什麼這會起作用。
換句話說,原始值數組不是原始類型 – Snicolas
啊,很酷!感謝您的解釋 - 這是有道理的。 **編輯:**如果你打算低估這個答案,至少有禮貌解釋原因。 –