Field.Set(Object, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したオブジェクト引数のこの Field オブジェクトによって表されるフィールドを、指定した新しい値に設定します。
[Android.Runtime.Register("set", "(Ljava/lang/Object;Ljava/lang/Object;)V", "")]
public void Set(Java.Lang.Object? obj, Java.Lang.Object? value);
[<Android.Runtime.Register("set", "(Ljava/lang/Object;Ljava/lang/Object;)V", "")>]
member this.Set : Java.Lang.Object * Java.Lang.Object -> unit
パラメーター
- obj
- Object
フィールドを変更する必要があるオブジェクト
- value
- Object
変更する obj のフィールドの新しい値
- 属性
例外
オブジェクトが null され、フィールドが非静的である場合
オブジェクトが宣言クラスと互換性がない場合
このフィールドにアクセスできない場合
注釈
指定したオブジェクト引数のこの Field オブジェクトによって表されるフィールドを、指定した新しい値に設定します。 基になるフィールドにプリミティブ型がある場合、新しい値は自動的にラップ解除されます。
操作は次のように進みます。
基になるフィールドが静的な場合、 obj 引数は無視されます。null である可能性があります。
それ以外の場合、基になるフィールドはインスタンス フィールドです。 指定したオブジェクト引数が null の場合、メソッドは NullPointerExceptionをスローします。 指定したオブジェクト引数が、基になるフィールドを宣言するクラスまたはインターフェイスのインスタンスでない場合、メソッドは IllegalArgumentExceptionをスローします。
このField オブジェクトが言語アクセス制御Java適用されていて、基になるフィールドにアクセスできない場合、メソッドはIllegalAccessExceptionをスローします。
基になるフィールドが final の場合、この Field オブジェクトは、次の条件が満たされた場合にのみ、 <em>write</em> アクセスできます: <ul><li>#setAccessible(boolean) setAccessible(true) がこの Field オブジェクトに対して成功した場合に限ります。</li><li>フィールドは非静的です。また</li><li>フィールドの宣言クラスが Class#isRecord() レコード クラスではありません。</li></ul> 上記のチェックのいずれかが満たされていない場合、このメソッドは IllegalAccessExceptionをスローします。
この方法で最終フィールドを設定することは、プログラムの他の部分からアクセスできるようになる前に、空白の最終フィールドを持つクラスのインスタンスの逆シリアル化または再構築中にのみ意味があります。 他のコンテキストで使用すると、プログラムの他の部分がこのフィールドの元の値を引き続き使用する場合など、予期しない影響を及ぼす可能性があります。
基になるフィールドがプリミティブ型の場合、アンラップ変換は、新しい値をプリミティブ型の値に変換しようとします。 この試行が失敗した場合、メソッドは IllegalArgumentExceptionをスローします。
ラップ解除が可能になった後、ID 変換または拡大変換によって新しい値を基になるフィールドの型に変換できない場合、メソッドは IllegalArgumentExceptionをスローします。
基になるフィールドが静的な場合、フィールドを宣言したクラスは、まだ初期化されていない場合に初期化されます。
フィールドは、ラップされていない可能性があり、拡大された新しい値に設定されます。
objの型でフィールドが非表示の場合、フィールドの値は上記の規則に従って設定されます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。