我有一个界面
public interface State {
String name();
}
想要收集所述州的函数
void processStates(Collection<State> states){
//...
}
和实现此
的枚举public enum StatesEnum implements State {
DUMMYSTATE1
}
当我尝试调用这样的函数时
List<StatesEnum> listOfStates = new ArrayList<>();
listOfStates.add(DUMMYSTATE1);
processStates(listOfStates)
这会产生Error:(29, 78) java: incompatible types: java.util.List<StatesEnum> cannot be converted to java.util.Collection<State>
我对枚举有什么理解?
答案 0 :(得分:2)
java.util.List<StatesEnum> cannot be converted to java.util.Collection<State>
这说明了一切,您无法将List<StatesEnum>
类型分配给Collection<State>
。
将(Collection<State> states)
更改为(Collection<? extends State> states
,但请记住,在此之后您将无法向null
添加除states
以外的任何内容。