[JAVA] Es ist keine umschließende Instanz vom Typ Hoge zugänglich.

Überblick

Beim Schreiben dieses Codes ist ein Fehler aufgetreten. Notieren Sie sich dies.

public class Hoge {
    private class Fuga(){
        public String name;
    }
    public static void main(String[] args) {
        Fuga fuga = new Fuga();
    }
}
No enclosing instance of type Hoge is accessible. 
Must qualify the allocation with an enclosing instance of type Hoge 
(e.g. x.new A() where x is an instance of Hoge).

Ich kann nicht auf das Innere des Hoge-Klassenfehlers zugreifen!

Lösungen

Machen Sie Fuga zu einer statischen Klasse

public class Hoge {
    //Machen Sie es zu einer statischen Klasse
    private static class Fuga(){
        public String name;
    }
    public static void main(String[] args) {
        Fuga fuga = new Fuga();
    }
}

Generiere Hoge und dann Fuga

public class Hoge {
    private static class Fuga(){
        public String name;
    }
    public static void main(String[] args) {
        //Erstellen Sie eine Instanz von Hoge und dann eine Instanz von Fuga
        Hoge hoge = new Hoge();
        Fuga fuga = hoge.new Fuga();
        //Du kannst das
        Fuga fuga2 = new Hoge().new Fuga();
    }
}

Recommended Posts

Es ist keine umschließende Instanz vom Typ Hoge zugänglich.
Was ist es? ~ 3 Arten von "Nein" ~
Keine qualifizierende Bean vom Typ Fehlerbehebung
Informationen zum Einschließen von Instanz 2