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

时间:2011-10-01 09:55:41

标签: java netbeans inner-classes

我正在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的封闭实例

请帮我解决此错误。

3 个答案:

答案 0 :(得分:77)

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

尝试,

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

答案 1 :(得分:34)

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

答案 2 :(得分:8)

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

public class X
{
    public static class Y {
    }
}