我正在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 {
}
}