java - 不能 `import static`静态嵌套类?

标签 java import compilation static package

我有一个 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/

相关文章:

Java Gui 组件不会出现在 JFrame 中

java - 如何为 Android 应用程序中的所有线程设置 uncaughtExceptionHandler?崩溃仅在某些情况下发生

c++ - 链接 GLFW 的本地安装

python - 在 Mac Snow Leopard 上安装 MySQL-python-1.2.3c1 时出现问题

c++ - 包含的 C++/C 头文件的实现在哪里?

java - Dagger 2 单例组件依赖于单例

java - Android中字符串变量的最大长度

python - PyCharm 导入外部库

mysql - 使用 sqoop 将 mysql 查询导入到 hbase

Python 模块导入行为