通過Java反射可以獲取對象的屬性值,可以使用以下步驟:
getClass()
方法獲取對象的Class對象,例如:Class<?> cls = obj.getClass();
getDeclaredField()
方法獲取指定名稱的屬性對象,例如:Field field = cls.getDeclaredField("fieldName");
其中,"fieldName"為需要獲取的屬性名稱。
setAccessible(true)
方法設置屬性的可訪問性,例如:field.setAccessible(true);
get()
方法獲取屬性值,例如:Object value = field.get(obj);
其中,obj
為對象實例。
完整示例代碼如下:
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) throws Exception {
// 創建對象實例
User user = new User("Alice", 18);
// 獲取對象的Class對象
Class<?> cls = user.getClass();
// 獲取屬性對象
Field nameField = cls.getDeclaredField("name");
Field ageField = cls.getDeclaredField("age");
// 設置屬性的訪問權限
nameField.setAccessible(true);
ageField.setAccessible(true);
// 獲取屬性值
Object nameValue = nameField.get(user);
Object ageValue = ageField.get(user);
System.out.println("name: " + nameValue);
System.out.println("age: " + ageValue);
}
}
class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
}
這樣就可以通過Java反射獲取對象的屬性值了。