2017-05-19 1 views
-1

ich die Klasse X und eine Variable x In meinem inneren Klasse YI genannt haben haben eine Variable y genanntLokale und globale Variablen (Java)

Ich möchte: x = y

Ich habe eine Getter-Methode für Y und für X aber die Fehler-Fehler: nicht statische Methode 'getY()' kann nicht aus einem statischen Kontext verwiesen werden.

Ich habe die getX() weder statische noch final gesetzt. Ich habe es auch in beide Richtungen versucht, aber es funktioniert nicht.

EDIT:

public class X { 
    Variable v = new Variable(); 
    [... here is something done with v] 

    class Y { 
     Variable v_new = v; 
     [works with v] 

    } 

    v = v_new; // ??? 
} 
+0

können Sie uns bitte zeigen einen Code? – dingalapadum

+0

"_... ** nicht statische ** Methode_". Erstellen Sie einfach eine Instanz der Klasse X, indem Sie das Schlüsselwort 'new' verwenden. Dann können Sie auf solche nicht statischen Methoden zugreifen. – KarelG

+0

Sie wollen x = y oder X = Y ??? –

Antwort

1

Ihre innere Klasse Y kann Klasse X ‚s Variable v zugreifen, so dass keine Notwendigkeit, sie als Variable v_new zu deklarieren ...
Wenn Sie müssen, dann eine public Getter-Methode verwenden und referenzieren sie durch eine Instanz von Y.

Etwas wie folgt aus:

public class X { 
    Variable v = new Variable(); 
    [... here is something done with v] 

    class Y { 
    Variable v_new = v; 
    [works with v] 
    public Variable getV() { return v_new; } 
    } 

    Y y = new Y(); 
    v = y.getV(); 
}