mar*_*man -1 java collections casting
在Java中有一种方法可以强制转换以下内容:
ArrayList<IMyType> list
成
ArrayList<MyType>
如果
MyType implements IMyType
?
如果您完全确定您list只包含MyType(或其子类型)的实例,那么您可以执行类似的操作
@SuppressWarnings("unchecked")
List<MyType> myList = (List<MyType>) (List<?>) list;
Run Code Online (Sandbox Code Playgroud)
这将首先将您的列表IMyType列入任何类型的列表<?>,然后您可以将其转换为更精确的类型.但是一定要只在你list包含实例MyType而不包含其他内容时才使用它.
无论如何,这种方法很少使用,在大多数情况下可以替换
List<? extends IMytype>
Run Code Online (Sandbox Code Playgroud)
要么
List<? super MyType>
Run Code Online (Sandbox Code Playgroud)