arn*_*e.b 6 java eclipse generics
我在日食中遇到问题,以下四行分布在相应的四个文件中:
public interface I<T> {}
public interface ISpecial<T> extends I<T> {}
public class Base implements I<String> {}
public class Special extends Base implements ISpecial<String> {}
Run Code Online (Sandbox Code Playgroud)
Eclipse告诉我(并且只有我和其他几个人都没有将相同的,稍微复杂的项目导入他们的工作区)
The interface I cannot be implemented more than once with different arguments: I<String> and I<String>
这是因为几天前我检查并安装了Eclipse更新(我几个月没做过),并更改了"Java编译器"设置对话框中的一些"错误/警告"设置(所以我做了)不知道这些变化中的任何一个是否应该受到指责,但我已经将所有可能是"错误"的内容切换为"警告"并且问题仍然存在.)
我想巧妙地提交给Eclipse,这<String>不是一个不同的论点<String>,但不知道我是如何或是否在这里遗漏了一些东西.
更新:将JDK编译器合规性级别设置为1.5(从1.7开始)后,问题在我创建的测试项目(使用上面的代码)中消失了,但在最初发生的更复杂的项目中却没有.在前者中,在将合规性级别再次设置为1.6或1.7之后问题没有回来,所以现在我自己再也无法用最小的例子重现问题,而没有解决原始问题本身.
小智 1
通常,问题是此类警告/错误没有提及冲突类的完全限定名称。类路径上可能有两个“String”类,“Base.java”导入第一个类,“Special.java”导入第二个类。检查您的导入:一个可能是 java.lang.String,另一个来自不同的实现。
| 归档时间: |
|
| 查看次数: |
3180 次 |
| 最近记录: |