Tor*_*ten 6 java eclipse generics compiler-warnings
我刚刚从JDK1.6切换到JDK 1.7.
我有这个代码:
SomeClass<SomeType> someVariable = new SomeClass<SomeType>(createSomeObject());
Run Code Online (Sandbox Code Playgroud)
现在我收到一个警告:
Redundant specification of type arguments <SomeType>
Run Code Online (Sandbox Code Playgroud)
如果我使用快速修复Eclipse给我这个:
SomeClass<SomeType> someVariable = new SomeClass<>(createSomeObject());
Run Code Online (Sandbox Code Playgroud)
结果如何
Got an exception - expecting EOF, found 'xyz'
Run Code Online (Sandbox Code Playgroud)
xyz是我的代码文本中的下一个项目.
当我删除有角度的括号时,我收到此警告:
SomeClass is a raw type. References to generic type SomeClass<M> should be parameterized
Run Code Online (Sandbox Code Playgroud)
如果我添加类型参数,我最终会收到第一个警告(冗余规范...)
WTF正在进行中?
我想保留两个警告,我仍在使用Eclipse 3.7.1.我不愿意更新我的Eclipse,如果有另一种方法可以解决这个问题,因为我需要一些时间来按照我想要的方式再次配置它.
类型参数的冗余规范
<SomeType>
来自 Java 7 的类型推断机制。两次指定泛型类型确实是多余的,因为编译器可以简单地从
SomeClass<SomeType> someVariable = new SomeClass<>(createSomeObject());
Run Code Online (Sandbox Code Playgroud)
因此,您不需要在声明和定义中使用泛型类型(类型推断可以更进一步——例如,使用 Scala,您只需将 LHS 声明为 a valor var,编译器就知道它真正需要的是什么类型)。
| 归档时间: |
|
| 查看次数: |
2778 次 |
| 最近记录: |