I have the following interface:
public interface Translator { public <T, F> T translate(F from, T to, Class<T> clazz); } and the following implementation:
class TranslatorImpl implements Translator { @Override public <T, F> T translate(F from, T to, Class<T> clazz) { //some code } } But for the translate() method in the TranslatorImpl class, Eclipse complains as follows:
Name clash: The method translate(F, T, Class) of type TranslatorImpl has the same erasure as translate(F, T, Class) of type Translator but does not override it
Update: When I do a Maven build it builds properly. I use JDK 1.6 update 31. The JDK compliance level in Eclipse is 1.6
How do I overcome this?
Update 2:
Compliance level settings: 
Installed JRE: 
Update 3: Contents of my .classpath file:
<?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> Update 4: project specific compiler compliance level settings: 