多个具有相同名称的静态类

时间:2016-02-04 01:31:39

标签: java namespaces inner-classes

我正在编写一个针对Java 8代码的编译器。源语言允许C ++ - 可以嵌套的名称空间;目标必须反映这一点。例如:

// all members removed
class Arctan {
  public static class Arctan {     // error: Duplicate class 'Arctan'
     public static class a {
        public static class b {
        }
     }

     public static class c {
        public static class a {
           public static class b {
           }

           public static class c {        // error: Duplicate class 'c'
              public static class a {     // error: Duplicate class 'a'
                 public static class b {
                 }

              }

           }

        }
     }

     public static class m {
        public static class b {
        }
     }
  }
}

但是,这会产生class Arctan is already defined in package unnamed package public static class Arctan错误。一位同事建议将每个static class改为单身;虽然这是一个好主意,但我担心它可能会使一些生成的代码复杂化,或者它可能会使实现变得混乱。

static class的选择是缺少C ++ namespace等价物,生成的代码必须都在同一个文件中(这是设计规范的一部分)。

我想知道是否有替代使用单身人士。

0 个答案:

没有答案