Java Eclipse警告:未经检查的转换与类型参数的冗余规范
我最近刚从JDK1.6切换到JDK1.7 我有以下代码:Java Eclipse警告:未经检查的转换与类型参数的冗余规范,java,eclipse,generics,compiler-warnings,Java,Eclipse,Generics,Compiler Warnings,我最近刚从JDK1.6切换到JDK1.7 我有以下代码: SomeClass<SomeType> someVariable = new SomeClass<SomeType>(createSomeObject()); xyz是我的代码文本中的下一项 当我移除角形支架时,我得到以下警告: SomeClass is a raw type. References to generic type SomeClass<M> should be parameterize
SomeClass<SomeType> someVariable = new SomeClass<SomeType>(createSomeObject());
xyz是我的代码文本中的下一项
当我移除角形支架时,我得到以下警告:
SomeClass is a raw type. References to generic type SomeClass<M> should be parameterized
SomeClass是原始类型。对泛型类型SomeClass的引用应该参数化
如果我添加类型参数,我将得到第一个警告(冗余规范…)
世跆联在进行什么
我希望保留这两个警告,并且我仍然在使用Eclipse3.7.1。如果有其他方法解决这个问题,我不愿意更新我的Eclipse,因为按照我想要的方式重新配置它需要一些时间
类型参数的冗余规范
来自Java7。两次指定泛型类型确实是多余的,因为编译器可以直接从
SomeClass<SomeType> someVariable = new SomeClass<>(createSomeObject());
SomeClass-someVariable=new-SomeClass(createSomeObject());
因此,在声明和定义中都不需要泛型类型(类型推断可以更进一步——例如,使用Scala,您只需将LHS声明为
val
或var
,编译器就知道它真正需要的类型)。检查Eclipse Java的“编译到版本”设置。这可能仍然设置为1.6,而不是7@MrSpoon您是指首选项编译器JDK compliance下的“编译器符合性级别”吗?设定为1.7。是的,那个。真可惜。那个“得到一个异常”的错误在我看来不像是一个标准的编译器错误。所以,我猜它来自另一个Eclipse构建器。您在“项目/属性/构建器”中启用了哪些其他构建器?Java构建器和Checkstyle构建器禁用Checkstyle。谷歌快速搜索(QuickGoogle search)认为“有一个例外”与Checkstyle有关。也许Checkstyle还不支持1.7,或者你只需要更新插件。很好,但是有没有办法告诉MapStruct生成正确的Java8代码?
Got an exception - expecting EOF, found 'xyz'
SomeClass is a raw type. References to generic type SomeClass<M> should be parameterized
SomeClass<SomeType> someVariable = new SomeClass<>(createSomeObject());