我有一个 A
类,里面有一个名为 B
的静态嵌套类:
import static A.B.*;
class A {
static class B {
static int x;
static int y;
}
public static void main(String[] args) {
System.out.println(x);
}
}
我想静态导入 B
中的所有内容,但它不起作用:
$ javac A.java
A.java:1: package A does not exist
import static A.B.*;
^
A.java:9: cannot find symbol
symbol : variable x
location: class A
System.out.println(x);
^
2 errors
为什么?
最佳答案
如果 A
在默认包中,这将不起作用。但是,您可以添加包声明:
package mypackage;
和使用
import static mypackage.A.B.*;
来自 JLS 的静态导入语法给出:
SingleStaticImportDeclaration: import static TypeName . Identifier ;
TypeName 必须为 full qualified .
在Using Package Members static import
语法包含包名:
import static mypackage.MyConstants.*;
It is recommended非常谨慎地使用 static
导入。
关于java - 不能 `import static`静态嵌套类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16595847/