Java泛型中的奇怪擦除

Java泛型中的奇怪擦除,java,generics,inheritance,Java,Generics,Inheritance,我有以下界面: public interface Translator { public <T, F> T translate(F from, T to, Class<T> clazz); } 更新4:特定于项目的编译器符合性级别设置: 之前的Java 6@Override注释不允许用于实现接口,这可能就是正在发生的事情。您可以尝试删除注释,它应该可以工作。 要正确修复,请检查eclipse项目属性中的源代码级符合性。对我来说应该是这样的。您使用什么编译器?您

我有以下界面:

public interface Translator
{
    public <T, F> T translate(F from, T to, Class<T> clazz); 
}
更新4:特定于项目的编译器符合性级别设置:

之前的Java 6@Override注释不允许用于实现接口,这可能就是正在发生的事情。您可以尝试删除注释,它应该可以工作。
要正确修复,请检查eclipse项目属性中的源代码级符合性。

对我来说应该是这样的。您使用什么编译器?您不需要第三个参数,除非您计划提供null作为第二个参数。是Eclipse造成了问题。当我进行Maven构建时,它会正确构建。我使用JDK1.6更新31。Eclipse中的JDK遵从性级别是1.6,因为这是特定于Eclipse的,所以您可以尝试完全删除您的实现吗?这样Eclipse会抱怨并建议您做什么对我来说没问题。升级到Eclipse的最新版本并重试。我正在使用JDK1.6。Eclipse 3.7。编译器符合性级别:1.6源代码还是二进制代码?在项目上还是在eclipse范围内?请详细说明您是如何知道Compliance为1.6的。@hgrey。。。查看我的更新。如果我遗漏了什么,请告诉我。如果显示了eclipse范围的默认一致性,请检查项目属性。您可以通过上下文菜单访问它们。这两个菜单都是相同的。我尚未配置特定于项目的设置。
class TranslatorImpl implements Translator
{
    @Override
    public <T, F> T translate(F from, T to, Class<T> clazz)
    {
        //some code
    }
}
<?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>