27

私のコードはEclipseで正常にコンパイルされますが、コマンドラインから(rubyベースのビルダーシステムを介して)コンパイルしようとすると、次のエラーメッセージが表示されます。

static import only from classes and interfaces

パブリック静的フィールドの静的インポートは許可されていないことを示唆します。この問題を診断するために何を探す必要がありますか?どうすれば修正できますか?

更新: @Tedの要求に従って、参照ファイルの定数宣言:

public static final String NULL = "<NULL>";

および参照ファイル内の(bowdlerized)参照:

import static my.path.MyClass.NULL;
4

4 に答える 4

22

私の推測では、Eclipse と buildr は異なる Java コンパイラ バージョンまたは異なるコンパイラ フラグを使用しています。Java 7 コンパイラにはバグ (バグ ID: 715906 ) があり、特定のフィールドを静的にインポートするとこのエラーが生成されます。回避策は、ワイルドカードの静的インポートを使用することです。したがって、代わりに:

import static pkg.Class.staticField;

これを行う:

import static pkg.Class.*;
于 2012-08-02T16:52:29.740 に答える