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