Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse警告:未经检查的转换与类型参数的冗余规范_Java_Eclipse_Generics_Compiler Warnings - Fatal编程技术网

Java Eclipse警告:未经检查的转换与类型参数的冗余规范

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

我最近刚从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 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());