5

给定以下程序:

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 中你会做什么?

4

1 回答 1

3

Java中没有通用的解决方案。我们的生活方式是

  1. 尊重命名约定,将类名与包/字段名区分开来,以及
  2. 生成代码时使用其类名限定静态变量。
于 2012-05-02T09:51:00.637 回答