T[]
配列をとる、変更できないメソッドがあります。
事前にタイプがわからないので、配列のtoString()
要素を「」する必要があります。[i]
T
すべてのオブジェクトについて、呼び出すことはできますtoString()
がT[]
、プリミティブの配列である可能性があり、これは意味がありません。
int i = 0;
i.toString(); // nonsense
私に何ができる?
に応答して:
T []はプリミティブの配列である可能性があり、これは意味がありません
ジェネリック型をプリミティブにすることはできません。これにより、配列が常にオブジェクトの配列になることが保証されます。すべてのオブジェクトが拡張Object
されるため、toString
メソッドがあります。
ジェネリック型をプリミティブにすることはできません。問題は存在しません。
ジェネリックスはプリミティブ型では使用できません。したがって、T[]
プリミティブの配列にすることはできません。したがって、がタイプのarr[i].toString()
場合はいつでも呼び出すことができます。arr
T[]
コンパイラーは.toString()
呼び出しを許可します。これは、実際に機能することを示す良い手がかりになるはずです。Javaコンパイラが何かを許可しない場合にのみ、とにかくそれを行う方法を考える時が来ました。これがJavaの順序です。