Heim > Java > javaLernprogramm > Wie kann ich eine nichtstatische Methode aus einer statischen Methode in Java heraus aufrufen?

Wie kann ich eine nichtstatische Methode aus einer statischen Methode in Java heraus aufrufen?

Barbara Streisand
Freigeben: 2024-12-22 16:07:10
Original
389 Leute haben es durchsucht

How Can I Call a Non-Static Method from Within a Static Method in Java?

Aufrufen einer nicht-statischen Methode innerhalb einer statischen Methode: Eine häufige Gefahr

In Java der Versuch, eine nicht-statische Methode innerhalb einer statischen Methode aufzurufen -Methode kann zu einem verwirrenden Fehler führen: „Es kann kein statischer Verweis auf die nicht statische Methode methodName() erstellt werden.“ Dieser Fehler entsteht, weil statische Methoden naturgemäß auf Klassenebene arbeiten, während nicht statische Methoden an bestimmte Instanzen der Klasse gebunden sind.

Um dieses Problem zu lösen, sind mehrere Ansätze zu berücksichtigen:

Die Unterscheidung verstehen

  • Statische Methoden gehören zur Klasse selbst und werden ohne Notwendigkeit aufgerufen Instanz.
  • Nichtstatische Methoden arbeiten mit Instanzen der Klasse und erfordern den Aufruf einer bestimmten Instanz.

Verwenden einer Instanz

  • Die einfachste Lösung besteht darin, eine Instanz der Zielklasse innerhalb der statischen Methode zu erstellen. Anschließend kann die nicht-statische Methode auf der Instanz aufgerufen werden.

    public static void callNonStaticMethod() {
      MyClass instance = new MyClass();
      instance.nonStaticMethod();
    }
    Nach dem Login kopieren

Zugriff auf statischen Kontext innerhalb nicht-statischer Methoden

  • In einigen Fällen erfordert die nicht statische Methode Zugriff auf den Klassenkontext. In solchen Fällen kann die Methode getClass() verwendet werden, um auf das Klassenobjekt zuzugreifen:

    public void nonStaticMethod() {
      Class<?> targetClass = getClass();
      // ... access static methods or members here
    }
    Nach dem Login kopieren

Entwurfsalternativen berücksichtigen

  • Wenn es aufgrund von Vererbungsbeschränkungen nicht möglich ist, die Methode statisch zu machen, sollten Sie eine Umstrukturierung des Codes in Betracht ziehen, um den Aufruf einer nicht statischen Methode innerhalb der statischen Methode zu ermöglichen Kontext.
  • Erkunden Sie die Verwendung einer Schnittstelle, die die gewünschte Methode definiert, und implementieren Sie sie in der Klasse, in der sich die statische Methode befindet.
  • Abhängigkeitsinjektion oder Service-Locator-Muster können dabei helfen, die erforderliche Instanz für Statik bereitzustellen Methodenaufruf.

Das obige ist der detaillierte Inhalt vonWie kann ich eine nichtstatische Methode aus einer statischen Methode in Java heraus aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage