Java 1.5 中是否有Enumerable.Cast()
与 C# 相同的功能?我想将一个分配给ArrayList<MyType>
声明为的变量List<Object>
。Eclipse 抱怨“类型不匹配:无法转换ArrayList<MyType>
为List<Object>
”。我只是使用List
和ArrayList
不使用泛型,但编译器对此发出警告,我想清理一些警告。
问问题
161 次
1 回答
7
如果您要添加到列表中,那么投射它是不安全的。但是,如果您只想从列表中获取,您可以使用:
ArrayList<MyType> specificList = new ArrayList<MyType>();
List<? extends Object> generalList = specificList;
或更接近Enumerable.Cast
将使用Iterable
:
Iterable<? extends Object> generalIterable = specificList;
很遗憾,您甚至需要在此处指定通配符(我很惊讶您这样做了),因为这Iterable
是一个“只读”界面。
有关 Java 泛型的更多信息,请参阅Java 泛型常见问题解答。
于 2012-01-16T19:42:28.560 回答