Java eclipse与oracle的编译器差异:强制转换错误不兼容类型

Java eclipse与oracle的编译器差异:强制转换错误不兼容类型,java,eclipse,Java,Eclipse,这可以由Eclipse编译,但不能由javac编译: Set<ConstraintViolation<Object>> violations = new HashSet<>(); Set<ConstraintViolation<Class1>> validateClass1 = null; violations.addAll((Set<? extends ConstraintViolation<Object>>)

这可以由Eclipse编译,但不能由javac编译:

Set<ConstraintViolation<Object>> violations = new HashSet<>();
Set<ConstraintViolation<Class1>> validateClass1 = null;
violations.addAll((Set<? extends ConstraintViolation<Object>>) validateClass1);
Set违规=新建HashSet();
设置validateClass1=null;

addAll((SetI在Eclipse中也有一个错误。您使用的是什么版本?Eclipse也使用javac。您可能会在Eclipse中使用不同版本的java。@LuudvanKeulen Eclipse有自己的编译器:@jornverene哇,我不知道。不过您必须指定一个java位置。我想这只是为了运行它。您在问什么?哪一个是r是吗?Eclipse错了:那是一个
集合>
,而不是
集合
error: incompatible types: Set<ConstraintViolation<Class1>> 
       cannot be converted to Set<? extends ConstraintViolation<Object>>