要通過反射獲取靜態變量,可以使用Field
類的get()
方法。下面是一個示例代碼:
import java.lang.reflect.Field;
public class Main {
public static int staticVar = 100;
public static void main(String[] args) {
try {
Field field = Main.class.getDeclaredField("staticVar");
int value = (int) field.get(null);
System.out.println("靜態變量的值為:" + value);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
在上面的代碼中,首先通過Main.class.getDeclaredField("staticVar")
獲取到靜態變量staticVar
的Field
對象,然后通過field.get(null)
方法獲取靜態變量的值。需要注意的是,由于靜態變量屬于類而不是對象,所以在調用get()
方法時傳入null
作為參數。