给定以下程序:
class A {
static int java = 42;
static int System = -1;
public static void main(String[] args) {
java.lang.System.out.println("Foo");
}
}
编译它给我一个错误,提示“int cannot be dereferenced”。原因很明显,但是这种情况应该如何处理。它在代码生成场景中尤为重要,在这种场景中,人们无法知道哪些用户代码与生成的代码交织在一起。
在 C# 中,我只会在“java.lang”之前使用“global::”命名空间说明符,但是在 Java 中你怎么做呢?
最佳答案
Java 中没有通用的解决方案。我们的生活方式是
- 尊重命名约定,将类名与包/字段名区分开来,并且
- 在生成代码时用类名限定静态变量。
关于Java 全局命名空间访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411344/