私は自分の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
ああ、クール!説明をありがとう - それは理にかなっています。 **編集:**この答えをdownvoteするつもりなら、少なくとも理由を説明する礼儀があります。 –