我正在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的封闭实例
请帮助我解决此错误。
首先,您必须创建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 {
}
}