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
、何らかの形でそれを処理するというものです。これがどのように、そしてなぜ機能するのか、誰かが私に説明できるかどうか疑問に思っていました。