2017-05-01 11 views
1

//interface1.java静的インポートに

package package1; 
    public interface interface1 { 
     static final int a =10; 
    } 

//StaticImportTest.java

import static package1.*;   //import package1.*; works 

    class StaticImportTest { 
     public static void main(String args[]) { 
     System.out.println(a);  //System.out.println(interface1.a) works 
     } 
    } 

私は「輸入」と「輸入静的な」単語を置き換え、システムを使用しています行うことができません。 .out.println(interface1.a)は動作しますが、現在のフォームで動作しない理由は不明です。あなたはそれが import static package1.interface1.*またはimport static package1.interface1.a
静的な輸入の輸入のpublic staticクラスのメンバー*またはたとえばaのためのような特定のもので、すべてでなければならないであろうことを意図のように動作するようにあなたの静的な輸入のために

+0

XYの問題のようですね。なぜこの独特の建設作業をしようとしていますか? –

+0

はちょうど、静的インポートの使用で実験して捕まってしまった –

+0

代わりに実験の、チュートリアルをお読みください。 static importの場合、 '。*'の前の修飾名は修飾されたクラス名でなければなりません。 –

答えて

1

。一方
インポートパッケージからパッケージまたは特定のクラスをインポートします。

import static package1.*は、ルートパッケージのクラスpackage1からすべてのメンバーをインポートしようとします。

は、通常の輸入作成とinterface1含むpackage1からの輸入の輸入すべてのクラスをするのでainterface1.a経由作品にアクセスする、そのためのあなたはinterface1クラス経由aにアクセスすることができます。

関連する問題