Uri*_*Uri 12 java syntax inner-classes
我很好奇在Java中给定外部类的实例来实例化内部类的语法选择.
语法是:
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
Run Code Online (Sandbox Code Playgroud)
但为什么不呢:
OuterClass.InnerClass innerObject = new outerObject.InnerClass();
Run Code Online (Sandbox Code Playgroud)
前者似乎暗示new是直接与类关联的方法或操作符,但我的理解是不是这种情况(与C++不同)?
后者会向我暗示类型名称是outerObject.InnerClass- 而实际上,typename只是InnerClass(或者OuterClass.InnerClass,也是合法的)与被引用的实例相关地构造outerObject.
就个人而言,我不喜欢Java首先嵌套类的方式,我同意它看起来有点奇怪,但我可以看出它为什么这样做.