Set<Object> removedObjs = new HashSet<>();
List<? extends MyEntity> delObjs = (List<? extends MyEntity>) new ArrayList<>(removedObjs);
MyEntity
是标记接口。Java 8不兼容类型错误
上面的代码是在java-7工作正常(Java版本“1.7.0_91”,要准确),但不是在java-8(Java版本“1.8.0_77”)
在Java8,我收到以下异常:
incompatible types: ArrayList<Object> cannot be converted to List< ? extends MyEntity>
如果你删除'''''你应该只是一个警告。如果它在Java 8中不起作用,那么它可能不应该在Java 7中工作。 –
它可以在我的环境中编译器在eclipse中只有警告中的JAVA1.8.0_92:类型安全性:未检查从ArrayList转换为List <?扩展MyEntity>但不能javac – andy
看看代码,这似乎是合乎逻辑的,它不应该工作。只需在两行之间插入'removedObjs.add(“42”);来查看原因。 – biziclop