如何返回私有内部类的对象

public class MainClass{
   public InnerClass getObj(){
       return this.new InnerClass()
   }
   private class InnerClass{
       InnerClass(){
       }
   }
}
-------------
MainClass mc = new MainClass();
mc.getObj(); // assume I am not holding it anywhere.


当我使用try-catch块进行检查时,以上代码给出了空指针异常。
另外,在调试模式下尝试时,其显示为“ ClassNotFoundException

但是我可以看到生成为MainClass $ InnerClass.class的类文件

最佳答案

嗯,我没有同样的问题。这是我修改后的代码:

class MainClass {
    public static void main( String[] args ) {
        MainClass mc = new MainClass();
        InnerClass ic = mc.getObj();
        System.out.println( ic );
    }

    public InnerClass getObj() {
        return this.new InnerClass();
    }

    private class InnerClass {
        InnerClass() {}
    }
}


此代码的结果是:

MainClass$InnerClass@64c3c749

关于java - 如何返回私有(private)内部类对象java的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10037575/

10-10 08:05