Java 全局命名空间访问

标签 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 cannot be dereferenced”。原因很明显,但是这种情况应该如何处理。它在代码生成场景中尤为重要,在这种场景中,人们无法知道哪些用户代码与生成的代码交织在一起。

在 C# 中,我只会在“java.lang”之前使用“global::”命名空间说明符,但是在 Java 中你怎么做呢?

最佳答案

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

  1. 尊重命名约定,将类名与包/字段名区分开来,并且
  2. 在生成代码时用类名限定静态变量。

关于Java 全局命名空间访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411344/

相关文章:

java - 如何通过索引随机访问 O(1) 排序集

javascript - 将正确的 jQuery 选择器传递给对象

java - 有用于 Java 的 Coffeescript 吗?换句话说 X 被编译成 Java

java - 使用 Maven 进行 Junit 测试时初始化错误

java - 在内部类中使用非最终局部变量

java - Spring Security OAuth2 改变JSON错误响应格式

xml - 从 WCF Restful 响应中删除 xml 命名空间

python - 将变量(带评估)导入到类命名空间(即 self.varName)

java - 当 Eclipse 没有自动创建 getter 和 setter 时,如何强制它提示您创建它?

java - 从 Java 源代码生成 UML