2010-12-27 2 views
0

なぜオブジェクトの汎用型のみですか?私は何を意味

interface A <T> { 
} 

class AImpl implements A <Integer> { // why not A<int> 
} 

である私は、このarticleを読んで、それをグーグルが、それでも私はそれが唯一のオブジェクトのではなく、プリミティブデータ型(int型、無効)のためである理由はわかりませんか?

+1

あなたの質問には、WildCardsのジェネリックタイプの引数だけはありません。 –

答えて

3

これは単なるワイルドカードではない - Javaジェネリックは単純に型引数としてプリミティブ型をサポートしていない。

一般的なJava Genericsの詳細については、Java Generics FAQを、this question in particularを参照してください。

+0

プリミティブ型をサポートするように設計されなかった理由についての洞察はありますか? –

+0

@Eyal:この方法では、JVMを変更する必要はありませんでした。個人的には、.NETジェネリックスのように設計されていたと思いますが、それは人生です。 –

0

プリミティブ型には、オブジェクトベースの型が持つすべてのメタデータと構造体が含まれていないため、Genericsはint、float、booleanなどでは機能しません。 Javaのプリミティブ型はまさにそのプリミティブです。関連するすべてのメタデータは、ジェネリック、リフレクション、サブクラス化などを可能にします。

関連する問題