// 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 static"只有" import"它使用System.out.println(interface1.a),但不确定为什么它不能以当前的形式工作。
答案 0 :(得分:1)
要使静态导入按照预期的方式工作,就必须这样做
import static package1.interface1.*
或import static package1.interface1.a
静态导入导入类的公共静态成员,或者全部带*或者特定的成员,例如a
另一方面,导入从包中导入包或特定类。
您的import static package1.*
会尝试从根包中的类package1
导入所有成员。
将其设为正常导入并通过a
访问interface1.a
有效,因为导入会导入package1
中包含interface1
的所有类,因此您可以访问a
通过interface1
类。