2012-04-14 10 views
4

私は、次のインタフェースがあります。奇妙な消去

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は文句:

名前クラッシュ:メソッドtranslate(F、T、Class)タイプ Tr anslatorImplはタイプ 翻訳翻訳(F、T、クラス)と同じ消去を持っていますが、それを

アップデート上書きしません:私はMavenのは、それが適切に構築する構築行うと を。私はJDK 1.6アップデート31を使用しています。EclipseのJDK準拠レベルは1.6

どのように私はこれを克服するのですか?

アップデート2:

準拠レベルの設定:JREインストールenter image description here

enter image description here

アップデート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ファイルの内容コンプライアンスレベルの設定: enter image description here

+2

私のために動作します。どのようなコンパイラを使用しますか? – Joni

+0

2番目のパラメータとしてnullを指定する予定がない場合は、3番目のパラメータは必要ありません。 – EJP

+0

問題を作り出しているのはEclipseです。私がMavenビルドを行うと、ビルドは適切に行われます。私はJDK 1.6アップデート31を使用します。EclipseのJDK準拠レベルは1.6 –

答えて

1

以前のJava 6 @Overrideアノテーションはインターフェースの実装には使用できませんでしたが、これはおそらく起こっていることです。アノテーションを削除してみると、アノテーションが機能するはずです。 eclipseプロジェクトのプロパティで、ソースレベルのコンプライアンスを正しく確認する。

+0

私はJDK 1.6を使用しています。 Eclipse 3.7。コンパイラの準拠レベル:1.6 –

+0

ソースまたはバイナリ?プロジェクトや日食は幅広い?あなたがどのようにコンプライアンスが1.6であることを知っているかに関して、非常に具体的にしてください。 – hgrey

+0

@hgrey ...更新を参照してください。私が何かを逃しているかどうか教えてください。 –