Sar*_*els 3 java generics casting java-5
Java 1.5中是否存在Enumerable.Cast()
与C#相同的内容?我想为ArrayList<MyType>
声明为的变量赋值List<Object>
.Eclipse抱怨"类型不匹配:无法转换ArrayList<MyType>
为List<Object>
".我只是使用List
和ArrayList
没有泛型,但编译器警告这一点,我想清理一些警告.
如果要添加到列表中,那么转换它是不安全的.但是,如果您只想从列表中获取,则可以使用:
ArrayList<MyType> specificList = new ArrayList<MyType>();
List<? extends Object> generalList = specificList;
Run Code Online (Sandbox Code Playgroud)
或者更接近Enumerable.Cast
将使用Iterable
:
Iterable<? extends Object> generalIterable = specificList;
Run Code Online (Sandbox Code Playgroud)
遗憾的是你甚至需要在这里指定通配符(我很惊讶你这样做),因为这Iterable
是一个"只读"接口.
有关Java泛型的更多信息,请参阅Java Generics FAQ.
归档时间: |
|
查看次数: |
157 次 |
最近记录: |