ホームページ >Java >&#&チュートリアル >Java リフレクション メカニズムはフィールド値をどのように設定しますか?

Java リフレクション メカニズムはフィールド値をどのように設定しますか?

PHPz
PHPzオリジナル
2024-04-15 22:18:011230ブラウズ

リフレクション メカニズムを使用してフィールド値を設定します。Field.getDeclaredField() を通じてフィールド参照を取得します。 Field.set() メソッドを呼び出して、ターゲット オブジェクトの新しい値を設定します。

Java リフレクション メカニズムはフィールド値をどのように設定しますか?

#Java リフレクション メカニズム: フィールド値の設定

リフレクション メカニズムは、クラス、メソッド、およびフィールドを確認および変更する方法です。実行時のメカニズム。これにより、Java プログラムのプライベートまたは保護されたメンバーにアクセス、設定、または呼び出すことができます。

フィールド値の設定

フィールド値を設定するには、

Field.set() メソッドを使用できます。このメソッドは 2 つのパラメータを受け入れます:

    ターゲット オブジェクト
  • 設定する新しい値

構文:

field.set(目标对象, 新值);

コード例:

プライベート フィールド

age を持つ person クラスがあるとします。次のコードを使用して age の値を設定できます:

import java.lang.reflect.Field;

public class Main {
    public static void main(String[] args) throws Exception {
        // 实例化 Person 对象
        Person person = new Person();

        // 获取 Person 类的私有字段 age
        Field field = person.getClass().getDeclaredField("age");

        // 将 age 的值设置为 30
        field.set(person, 30);

        // 输出 age 的值
        System.out.println(person.getAge()); // 输出:30
    }
}

class Person {
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

注:

    プライベート フィールドにアクセスするには、次のコードを使用する必要があります。
  • setAccessible(true) メソッドはフィールドのプライバシーを削除します。
  • 保護されたアクセス フィールドまたはパッケージ アクセス フィールドを設定することもできます。
  • 元のオブジェクトを変更したくない場合は、
  • Field.set() メソッドを使用してフィールド値のコピーを作成することもできます。

以上がJava リフレクション メカニズムはフィールド値をどのように設定しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。