3

Enumerable.Cast()Java 1.5にはC#と同等のものがありますか?ArrayList<MyType>として宣言された変数にを割り当てたいList<Object>。Eclipseは「タイプの不一致:からArrayList<MyType>に変換できません」と不平を言いList<Object>ます。私はジェネリックスを使用していて、ジェネリックスを使用していませんでしListArrayListが、コンパイラーはそれについて警告し、いくつかの警告をクリーンアップしたいと思いました。

4

1 に答える 1

7

リストに追加する場合、それをキャストするのは安全ではありません。ただし、リストからのみフェッチする場合は、次を使用できます。

ArrayList<MyType> specificList = new ArrayList<MyType>();
List<? extends Object> generalList = specificList;

または、より近いEnumerable.Castものを使用することIterableです:

Iterable<? extends Object> generalIterable = specificList;

Iterable「読み取り専用」インターフェイスであるため、ここでワイルドカードを指定する必要があるのは残念です(指定したことに驚きました) 。

Javaジェネリックの詳細については、JavaジェネリックFAQを参照してください。

于 2012-01-16T19:42:28.560 に答える