//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
}
}
当我仅用"导入"替换"导入静态"一词并使用System.out.println(Interface1.a(时,它可以正常工作,但不确定为什么它以当前形式不起作用。
<</p>,您的静态导入以您的意图工作方式必须为 import static package1.interface1.*
或import static package1.interface1.a
静态导入导入类的公共静态成员,均以 *或特定的类别(例如a
(。
另一方面,导入的包裹或特定类从软件包导入。
您的import static package1.*
将尝试从root软件包中的类package1
导入所有成员。
使其成为正常的导入,并通过interface1.a
访问a
,因为该导入来自package1
(包括interface1
(的所有类,因此您可以通过interface1
类访问a
。