给定以下程序:
class A {
static int java = 42;
static int System = -1;
public static void main(String[] args) {
java.lang.System.out.println("Foo");
}
}
编译它给了我一个错误,说"int 不能被取消引用"。原因很明显,但如何处理这样的情况。这在代码生成方案中尤其重要,在代码生成方案中,人们无法知道哪些用户代码与生成的代码交织在一起。
在 C# 中,我只会在"java.lang"之前使用"global::"命名空间说明符,但是你在 Java 中做什么?
Java 中没有通用的解决方案。我们的生活方式是
- 遵守命名约定,将类名与包/字段名区分开来,并且
- 生成代码时使用其类名限定静态 Var。