溫馨提示×

java反射給對象屬性賦值怎么實現(xiàn)

小億
123
2023-10-26 20:49:58
欄目: 編程語言

Java反射可以通過java.lang.reflect.Field類來給對象的屬性賦值。以下是一個示例代碼:

import java.lang.reflect.Field;

public class Main {
    public static void main(String[] args) throws Exception {
        // 創(chuàng)建對象
        Person person = new Person();

        // 獲取屬性
        Field nameField = Person.class.getDeclaredField("name");

        // 設(shè)置屬性可訪問性
        nameField.setAccessible(true);

        // 給屬性賦值
        nameField.set(person, "John");

        // 輸出屬性值
        System.out.println(person.getName()); // 輸出: John
    }
}

class Person {
    private String name;

    public String getName() {
        return name;
    }
}

在上面的例子中,首先創(chuàng)建了一個Person對象。然后使用Person.class.getDeclaredField方法獲取到了Person類的name屬性。為了能夠訪問私有屬性,需要調(diào)用Field.setAccessible(true)方法將其設(shè)置為可訪問。最后,調(diào)用Field.set方法將屬性值設(shè)置為"John"。可以通過person.getName()方法驗證屬性值是否被成功設(shè)置。

0