How can I resolve “an enclosing instance that contains X.Y is required”?

匿名 (未验证) 提交于 2019-12-03 01:36:02

问题:

I am developing a small desktop application in Netbeans. This is my first program and I am facing a very strange type of error. I know I did some thing wrong but unable to trace what I am doing wrong :(

Please help me in resolving this error.

Description: I have a default package Src and I am creating new Java classes in this package as required. Along with other classes I made a class X like this:

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 } 

Now I need to create instance of one of the inner classes in some other class that exists in the same package, like this:

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

but I am getting the following error:

an enclosing instance that contains X.Y is required

Please help me in resolving this error.

回答1:

First of all you have to create an object of X class (outer class) and then use objX.new InnerClass() syntax to create an object of Y class.

Try,

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


回答2:

You want to declare static inner classes: public static class Y.



回答3:

Declare Y as static to avoid creating instance of X.

public class X {     public static class Y {     } } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!