我有以下接口:奇怪擦除
public interface Translator
{
public <T, F> T translate(F from, T to, Class<T> clazz);
}
和下面的实现:
class TranslatorImpl implements Translator
{
@Override
public <T, F> T translate(F from, T to, Class<T> clazz)
{
//some code
}
}
但在TranslatorImpl
类的translate()
方法,Eclipse的笙歌如下:
名称冲突:方法翻译(F,T,类)的类型 Tr anslatorImpl具有相同的擦除作为 型翻译的翻译(F,T,A类),但不覆盖它
更新: 当我做一个Maven构建它建立正常。我使用JDK 1.6更新31. Eclipse中的JDK合规性级别为1.6
我该如何克服这一点?
更新2:
的级别设置:
安装JRE:
更新3:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry combineaccessrules="false" kind="src" path="/dbmodel"/>
<classpathentry combineaccessrules="false" kind="src" path="/uimodel"/>
<classpathentry combineaccessrules="false" kind="src" path="/common"/>
<classpathentry kind="var" path="MAXIMUS_DEV_DIR/resources/dependencies/java/log4j/log4j-1.2.16/log4j-1.2.16.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
更新4:项目的具体编译我的.classpath
文件的内容合规等级设置:
适用于我的作品。你使用什么编译器? – Joni 2012-04-14 09:28:11
除非您打算提供null作为第二个参数,否则不需要第三个参数。 – EJP 2012-04-14 09:30:58
这是创建问题的Eclipse。当我做一个Maven构建时,它会正确构建。我使用JDK 1.6更新31. Eclipse中的JDK合规性级别为1.6 – 2012-04-14 09:33:13