Java 全局命名空间访问

问题描述 投票:0回答:1

给出以下程序:

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 namespaces code-generation package
1个回答
2
投票

Java 中这种类型的命名冲突没有通用的解决方案。发现这一点可能会令人沮丧,但在实践中很少会出现实际问题。有一些标识符应避免用作成员变量名称,例如

java
com
,因为它们用于顶级域名。

还有一些其他潜在的冲突,我们通过遵守命名约定来避免这些冲突——类名以大写开头,变量名以小写开头。

© www.soinside.com 2019 - 2024. All rights reserved.