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