如何解决"an enclosing instance that contains X.Y is required"?



我正在Netbeans中开发一个小型桌面应用程序。这是我的第一个程序,我遇到了一个非常奇怪的错误。我知道我做错了什么,但无法追踪我做错了什么:(

请帮我解决这个错误。

描述:我有一个默认的包Src,我根据需要在这个包中创建新的Java类。与其他类一起,我做了一个类X,像这样:

public class X
{
    public class Y
    {//some member functions and variables exist here}
    public class Z
    {//some member functions and variables exist here}
    //some member functions and variables exist here
}

现在我需要在同一包中存在的其他类中创建一个内部类的实例,如下所示:

public X.Y oY = new X.Y();

,但我得到以下错误:

需要包含xy的封闭实例

请帮我解决这个错误

首先你必须创建一个X类的对象(外部类),然后使用objX.new InnerClass()语法创建一个Y类的对象。

,

X x=new X();
X.Y y=x.new Y();

您需要声明静态内部类:public static class Y .

声明Y为静态,以避免创建x的实例

public class X
{
    public static class Y {
    }
}

相关内容

  • 没有找到相关文章

最新更新