我如何解析“需要包含X.Y的封闭实例”?

问题描述 投票:37回答:4

我正在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();

但是我收到以下错误:

必须包含X.Y的封闭实例

请帮助我解决此错误。

java netbeans inner-classes
4个回答
80
投票

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

尝试,

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

35
投票

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


8
投票

将Y声明为静态以避免创建X的实例。

public class X
{
    public static class Y {
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.