2

//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
      }
   }

当我仅用“import”替换“import static”一词并使用 System.out.println(interface1.a) 时,它可以工作,但不确定为什么它不能以当前形式工作。

4

1 回答 1

1

为了让您的静态导入按您预期的方式工作, import static package1.interface1.*或者import static package1.interface1.a
静态导入导入一个类的公共静态成员,或者全部带有 * 或一个特定的成员,例如a.
另一方面,导入从包中导入包或特定类。

import static package1.*将尝试从package1根包中的类中导入所有成员。

使其成为正常的导入并a通过interface1.a工作进行访问,因为导入从 include 导入所有类package1interface1因此您可以a通过interface1该类访问。

于 2017-05-01T11:04:50.470 回答