与其他顶级类同名的Java内部类 [英] Java inner class with the same name as other top level class

查看:88
本文介绍了与其他顶级类同名的Java内部类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个与Java内部类有关的问题.

I have question related to Java inner classes.

是否可以从定义内部类A的顶级类Main访问顶级类A?

Is there a way to access top level class A from top level class Main that define inner class A?

下面是演示问题的示例代码:

Below is sample code demonstrating the problem:

class A {   // Outer Class A
  { 
    System.out.println("A outer");
  }
}

class B {   // Outer Class B
  { 
    System.out.println("B outer"); 
  }
}

public class Main { 
  class A {  // Inner Class A
    {
      System.out.println("A inner");
    }
  }

  public void newA() {      
    class A {   // Local Class A
      { 
        System.out.println("A local");
      }
    }
    new A();
  }

  public static void main(String[] args) {
    new Main().newA();  // prints "A local"
    new Main().new A(); // prints "A inner"
    //new A();    // compiler error: No enclosing instance of type Main is Accessible.
    new B();      // but this works and prints "B outer" 
  }
}

推荐答案

使用完全限定的类名:

new com.mypackage.A();

这篇关于与其他顶级类同名的Java内部类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆