Java内部类方法访问

6

我有一个外部类和一个扩展了JPanel的私有内部类,这是代码的设计。

public class Outer{
    private class Inner extends JPanel{
        public void doSomeWork(){}
    }

    public Outer(){
        Inner inner = new Inner();
        inner.doSomeWork();
    }

    public static void main(String args[]){
        Outer outer = new Outer();
    }
}

我无法从外部类访问内部类的doSomeWork()方法。请帮助。


1
你说你无法访问这个方法?你是否看到编译器错误信息?如果是这样,请在你的问题中发布它。 - Hovercraft Full Of Eels
3
这个编译非常好。 - Sergey Kalinichenko
2
Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); inner.doSomeWork();外部 outer = new 外部(); 外部.内部 inner = outer.new 内部(); inner.doSomeWork(); - chuthan20
1
是的,你的代码编译没有问题。但你并没有告诉我们你遇到了什么问题。请详细说明。任何编辑都应该是对你原来问题的修改,而不是评论。 - Hovercraft Full Of Eels
1
我尝试在doSomeWork()方法中加入一些Sop。它正常工作并且可访问,因为它输出了Sop。 - Shailesh Saxena
1个回答

12

1
这段代码无法工作,因为内部类是私有的,所以任何客户端代码都无法访问它。但我认为这不是 OP 的问题,因为他似乎试图从外部类访问内部类,而不是从外部访问。 - jedyobidan
你怎么说?我尝试只删除JPanel,它可以正常工作。 - Shailesh Saxena

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接