のない静的インポートは、コードの次の簡単な例で考えてみましょう:私たちは、このコードをコンパイルしようとする場合、我々は、エラー・メッセージが表示されますパッケージ名
public class TestStaticImport {
static enum Branches {
APPLE,
IBM
}
public static void doSomething(Branches branch) {
if (branch == APPLE) {
System.out.println("Apple");
}
}
}
を:
java: cannot find symbol
symbol: variable APPLE
location: class TestStaticImport
これは可能性がこの静的インポートを導入して解決してください
import static
... TestStaticImport.Branches.*
しかし、(私にとって)現時点では不可解なものを開始:このソリューションが正常に動作します
クラスTestStaticImport
が空のルートパッケージに移動されますまで、すべてがうまく、コンパイルされ、すなわちいずれかが存在しません
package blablabla;
このJavaファイルの先頭にあります。
コード行:import static TestStaticImport.Branches.*;
は私のIntelliJ IDEAに有効なコードとして強調されているが(IDEの名称は情報だけのために、重要ではありません)が、私は、エラー、次のようなコードをコンパイルしようとすると表示されます。
java: package TestStaticImport does not exist
だから、実際には二つの質問があります。
1)主な質問:なぜそれは空のディレクトリからimport static
には不可能でしょうか?
2)静的インポートを除いて、名前だけを使用して列挙型フィールドのコード参照をBranches.APPLE
の代わりにAPPLE
とする別の方法(存在する場合)
P.S.してください、空のパッケージが醜いスタイルなどであることを教えてください。この質問は単なる理論上の問題です。
...私の知る限り見ることができるようにそれが限界です。 – fge