interface A <T> {
}
class AImpl implements A <Integer> { // why not A<int>
}
である私は、このarticleを読んで、それをグーグルが、それでも私はそれが唯一のオブジェクトのではなく、プリミティブデータ型(int型、無効)のためである理由はわかりませんか?
interface A <T> {
}
class AImpl implements A <Integer> { // why not A<int>
}
である私は、このarticleを読んで、それをグーグルが、それでも私はそれが唯一のオブジェクトのではなく、プリミティブデータ型(int型、無効)のためである理由はわかりませんか?
これは単なるワイルドカードではない - Javaジェネリックは単純に型引数としてプリミティブ型をサポートしていない。
一般的なJava Genericsの詳細については、Java Generics FAQを、this question in particularを参照してください。
プリミティブ型をサポートするように設計されなかった理由についての洞察はありますか? –
@Eyal:この方法では、JVMを変更する必要はありませんでした。個人的には、.NETジェネリックスのように設計されていたと思いますが、それは人生です。 –
プリミティブ型には、オブジェクトベースの型が持つすべてのメタデータと構造体が含まれていないため、Genericsはint、float、booleanなどでは機能しません。 Javaのプリミティブ型はまさにそのプリミティブです。関連するすべてのメタデータは、ジェネリック、リフレクション、サブクラス化などを可能にします。
あなたの質問には、WildCardsのジェネリックタイプの引数だけはありません。 –