如何從靜態上下文中訪問類物件,而不透過類名訪問 Java?
唯一可能的解決方案是獲取當前執行緒的堆疊軌跡。使用堆疊軌跡中的某個元素獲取類名。將其傳遞給名為 Class 的類的 forName() 方法。
這會返回一個類物件,可以使用 newInstance() 方法獲取該類的例項。
示例
public class MyClass {
String name = "Krishna";
private int age = 25;
public MyClass() {
System.out.println("Object of the class 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();
}
}輸出
Object of the class MyClass name: Krishna age: 25
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP