2011-10-13 15 views
5

ここコードスニペットです:上記の場合エクリプス:矛盾警告

class MyClass { 
    private native void foo(); 
} 

、エクリプス(すなわち、3.7.0)を警告

を型のMyClassからメソッドfoo()を与えていますローカル

さてさて使用されていないが、私は警告を抑制しようとすると、決して:

class MyClass { 
    @SuppressWarnings("unused") 
    private native void foo(); 
} 

そう、それは文句を停止させる方法はありますか?

Unnecesary @SuppressWarnings( "未使用")

を不平を言いますか

更新

不完全な情報については、申し訳ありません - この警告は、唯一のAspectJプロジェクトに表示されます。私が単純なJavaプロジェクトを作成し、それにクラスを入れると、すべて正常に動作します。

私が理解する限り、AspectJは独自のコンパイラを使用しているので、この警告が生成されなければなりません。私はちょうどしようと、私は「不要な...」という警告を得ることはありません

Version: 2.1.3.e37x-20110628-1900 
AspectJ version: 1.6.12.20110613132200 
+0

おかげで、私はEclipse 3.5の下で – Shlublu

+0

という2番目の警告を表示しません。最初の警告が表示されません - 「MyClassタイプのメソッドfoo()がローカルで使用されることはありません。奇妙な! –

+0

「プロジェクト>クリーン」を試してから、再構築できますか?たぶん最初の警告は古いマーカーです。 –

答えて

1

、これは何の警告を生成しません。

class MyClass { 
    private native void foo(); 
} 

これは、しかし、Unnecessary @SuppressWarnings("unused")警告を生成します

class MyClass { 
    @SuppressWarnings("unused") 
    private native void foo(); 
} 

最初の例ではThe method foo() from the type MyClass is never used locally警告が生成され、2番目の例ではJavaプロジェクトと同じ警告が生成されます。これはおそらくAspectJのバグです。 AspectJ bugzillaで問題を提起することをお勧めします。

https://bugs.eclipse.org/bugs/

AspectJのコンパイラは、Eclipse 3.3 JDTコンパイラのフォークです。したがって、このバグはもともとEclipse 3.3にあった可能性があります。 Java 7が利用できるようになったので、AspectJはEclipse 3.7または3.8に移行する可能性が高く、JDTコンパイラから修正を受け取ります。とにかくバグを起こす価値はある。

+0

うん、Eclipse/AspectJバグのようだから、私は問題を提出した:https://bugs.eclipse.org/bugs/show_bug.cgi?id=213755。 – Andy

0

:私は、AspectJの開発ツールのプラグインを使用しています。警告はjavaコンパイラによって発行され、checkstyleやfindbugsなどの他のツールでは発行されませんか?

とにかく、未使用のプライベートメソッドが理にかなっている状況はほとんどありません。

+0

残念ながら、未使用のプライベートメソッドの宣言を避ける方法がないのは確かです。 – Andy

0

私のために働いています。私はあなたのようにEclipse Indigoを実行しています。

2

@SuppressWarningsのリストはコンパイラに固有のものです。 Eclipseで、

未使用

はunusedArgument、unusedImport、unusedLabel、unusedLocal、unusedPrivateとunusedThrown

リスト全体がここにあるのためのマクロです:Javaプロジェクトの内部the list of valid @SuppressWarnings supported in Eclipse

+0

@SuppressWarningsはもっと正確に言うと、Eclipse固有のものではありません。ただし、そのアノテーションによって抑制される警告のリストは、コンパイラ固有のものです。 –