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.

Другие вопросы по тегам