Java - Enumerable.Cast(), как C#?
Есть ли эквивалент в Java 1.5 для Enumerable.Cast()
из C#? Я хочу назначить ArrayList<MyType>
к переменной, объявленной как List<Object>
, Затмение ворчит "Несоответствие типов: не может преобразовать из ArrayList<MyType>
в List<Object>
"Я просто использовал List
а также ArrayList
без обобщений, но компилятор предупреждает об этом, и я хотел убрать некоторые предупреждения.
1 ответ
Было бы небезопасно разыграть это, если вы собираетесь добавить в список. Однако, если вы хотите получить только из списка, вы можете использовать:
ArrayList<MyType> specificList = new ArrayList<MyType>();
List<? extends Object> generalList = specificList;
Или ближе к Enumerable.Cast
будет использовать Iterable
:
Iterable<? extends Object> generalIterable = specificList;
Обидно, что вам даже нужно указать здесь подстановочный знак (я был удивлен, что вы сделали), учитывая, что Iterable
интерфейс только для чтения
Для получения дополнительной информации о дженериках Java см. FAQ по дженерикам Java.