376 Stimmen

Was ist der Grund dafür, dass eine nichtstatische Methode nicht aus einem statischen Kontext heraus referenziert werden kann?

Der häufigste Anfängerfehler besteht darin, dass Sie versuchen, eine Klasseneigenschaft "statisch" zu verwenden, ohne eine Instanz dieser Klasse zu erstellen. Sie erhalten dann die erwähnte Fehlermeldung:

Sie können entweder die nicht statische Methode statisch machen oder eine Instanz dieser Klasse erstellen, um ihre Eigenschaften zu verwenden.

Was ist der Grund dafür? Mir geht es nicht um die Lösung, sondern um den Grund.

private java.util.List<String> someMethod(){
    /* Some Code */
    return someList;            
}

public static void main(String[] strArgs){          
     // The following statement causes the error. 
    java.util.List<String> someList = someMethod();         
}

1voto

Vipul Punkte 19

Der einfache Grund dafür ist, dass statische Datenelemente der übergeordneten Klasse zugegriffen werden kann (nur wenn sie nicht überschrieben werden), aber für Instanz(nicht-statische) (nicht statische) Datenmitglieder oder Methoden benötigen wir ihre Referenz und können sie daher nur durch ein Objekt aufgerufen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X