English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Wie kann man auf ein Objekt der Klasse zugreifen, ohne Java statischen Kontext zu verwenden?

Die einzige mögliche Lösung besteht darin, die Stackschnittstelle der aktuellen Thread zu erwerben. Verwenden Sie die Elemente der Stackschnittstelle, um den Klassennamen zu erhalten. Übergeben Sie ihn an die forName()-Methode der Klasse Class.

Dies wird ein Class-Objekt zurückgeben, das Sie verwenden könnennewInstance()Methode, um eine Instanz dieser Klasse zu erhalten.

Beispiel

public class MyClass {
   String name = "Krishna";
   private int age = 25;
   public MyClass() {
      System.out.println("Objekt der Klasse MyClass");
      System.out.println("name: ",+this.name);
      System.out.println("age: ",+this.age);
   }
   public static void demoMethod() throws Exception {
      StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
      StackTraceElement current = stackTrace[1];
      Class.forName(current.getClassName()).newInstance();
   }
   public static void main(String args[]) throws Exception {
      demoMethod();
   }
}

Ausgabeergebnis

Objekt der Klasse MyClass
name: Krishna
age: 25
Vielleicht gefällt Ihnen auch