0

T[]配列をとる、変更できないメソッドがあります。

事前にタイプがわからないので、配列のtoString()要素を「」する必要があります。[i]T

すべてのオブジェクトについて、呼び出すことはできますtoString()T[]、プリミティブの配列である可能性があり、これは意味がありません。

int i = 0;
i.toString(); // nonsense

私に何ができる?

4

4 に答える 4

6

に応答して:

T []はプリミティブの配列である可能性があり、これは意味がありません

ジェネリック型をプリミティブにすることはできません。これにより、配列が常にオブジェクトの配列になることが保証されます。すべてのオブジェクトが拡張Objectされるため、toStringメソッドがあります。

于 2013-01-19T21:17:12.723 に答える
2

ジェネリック型をプリミティブにすることはできません。問題は存在しません。

于 2013-01-19T21:17:17.703 に答える
2

ジェネリックスはプリミティブ型では使用できません。したがって、T[]プリミティブの配列にすることはできません。したがって、がタイプのarr[i].toString()場合はいつでも呼び出すことができます。arrT[]

于 2013-01-19T21:17:21.447 に答える
1

コンパイラーは.toString()呼び出しを許可します。これは、実際に機能することを示す良い手がかりになるはずです。Javaコンパイラが何かを許可しない場合にのみ、とにかくそれを行う方法を考える時が来ました。これがJavaの順序です。

于 2013-01-19T21:19:18.067 に答える