导入静态,不带包名称
请考虑以下简单的代码示例:
public class TestStaticImport {
static enum Branches {
APPLE,
IBM
}
public static void doSomething(Branches branch) {
if (branch == APPLE) {
System.out.println("Apple");
}
}
}
如果我们尝试编译此代码,我们将收到错误消息:
java: cannot find symbol
symbol: variable APPLE
location: class TestStaticImport
这可以通过引入静态导入来解决:enum
import static
...TestStaticImport.Branches.*
但在这一刻,不可理解的事情(对我来说)开始了:
这个解决方案工作正常,一切都编译得很好,直到类被移动到空的根包中,即没有任何TestStaticImport
package blablabla;
在这个java文件的顶部;
代码行:在我的Intellij IDEA中突出显示为有效代码(IDE的名称无关紧要,仅供参考),但是当我尝试编译此类代码时,会出现以下错误:import static TestStaticImport.Branches.*;
java: package TestStaticImport does not exist
所以,实际上有两个问题:
1)主要问题:为什么不可能从空目录?import static
2)另一种方法(如果存在)允许仅使用其名称(即 而不是 ),除了静态导入?APPLE
Branches.APPLE
附言:请不要告诉我,空包装是丑陋的风格等等。这个问题只是理论问题。