web-dev-qa-db-fra.com

Comment puis-je résoudre «une instance englobante contenant X.Y est requise»?

Je développe une petite application de bureau dans Netbeans. Ceci est mon premier programme et je suis confronté à un type d'erreur très étrange. Je sais que j'ai fait quelque chose de mal mais que je ne peux pas retracer ce que je fais mal :(

Veuillez m'aider à résoudre cette erreur.

Description: J'ai un package par défaut Src et je crée de nouvelles classes Java dans ce package selon les besoins. Avec d'autres classes, j'ai créé une classe X comme cette:

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
}

Maintenant, je dois créer une instance de l'une des classes internes dans une autre classe qui existe dans le même package, comme ceci:

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

mais j'obtiens l'erreur suivante:

une instance englobante contenant X.Y est requise

Veuillez m'aider à résoudre cette erreur.

37
Jame

Tout d'abord, vous devez créer un objet de classe X (classe externe), puis utiliser la syntaxe objX.new InnerClass() pour créer un objet de classe Y.

Essayer,

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

Vous souhaitez déclarer des classes internes statiques: public static class Y.

34
Hugh

Déclarez Y comme statique pour éviter de créer une instance de X.

public class X
{
    public static class Y {
    }
}
8
Jon_Li