Java全局命名空间访问

时间:2012-05-02 09:48:24

标签: java namespaces code-generation package

鉴于以下计划:

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

1 个答案:

答案 0 :(得分:3)

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

  1. 尊重命名约定,它区分类名和包/字段名,以及
  2. 在生成代码时使用其类名限定static var。