Field.Set(Object, Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Legt das durch dieses Field Objekt dargestellte Feld für das angegebene Objektargument auf den angegebenen neuen Wert fest.
[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
Parameter
- obj
- Object
das Objekt, dessen Feld geändert werden soll
- value
- Object
der neue Wert für das Zu ändernde obj Feld
- Attribute
Ausnahmen
wenn das Objekt und das Feld nicht statisch ist null
wenn das Objekt nicht mit der deklarierenden Klasse kompatibel ist
Wenn auf dieses Feld nicht zugegriffen werden kann
Hinweise
Legt das durch dieses Field Objekt dargestellte Feld für das angegebene Objektargument auf den angegebenen neuen Wert fest. Der neue Wert wird automatisch entwappt, wenn das zugrunde liegende Feld einen Grundtyp aufweist.
Der Vorgang wird wie folgt fortgesetzt:
Wenn das zugrunde liegende Feld statisch ist, wird das obj Argument ignoriert. Es kann null sein.
Andernfalls ist das zugrunde liegende Feld ein Instanzfeld. Wenn das angegebene Objektargument null ist, löst die Methode eine NullPointerException. Wenn das angegebene Objektargument keine Instanz der Klasse oder Schnittstelle ist, die das zugrunde liegende Feld deklariert, löst die Methode eine IllegalArgumentException.
Wenn dieses Field Objekt Java Sprachzugriffssteuerung erzwingt und auf das zugrunde liegende Feld nicht zugegriffen werden kann, löst die Methode eine IllegalAccessException.
Wenn das zugrunde liegende Feld abgeschlossen ist, hat dieses Field Objekt den<Schreib>-/Em-Zugriff<, wenn die folgenden Bedingungen erfüllt sind: >ul<>li<> ist für dieses #setAccessible(boolean) setAccessible(true) Objekt erfolgreich.Field</li li><>das Feld ist nicht statisch. Und</li li><>die deklarierende Klasse des Felds ist keine Class#isRecord()-Datensatzklasse.</li></ul> Wenn eine der oben genannten Prüfungen nicht erfüllt ist, löst diese Methode eine IllegalAccessException.
Das Festlegen eines endgültigen Felds auf diese Weise ist nur während der Deserialisierung oder Wiederherstellung von Instanzen von Klassen mit leeren endgültigen Feldern sinnvoll, bevor sie für den Zugriff durch andere Teile eines Programms verfügbar gemacht werden. Die Verwendung in einem anderen Kontext kann unvorhersehbare Auswirkungen haben, einschließlich Fällen, in denen andere Teile eines Programms den ursprünglichen Wert dieses Felds weiterhin verwenden.
Wenn das zugrunde liegende Feld einen primitiven Typ aufweist, wird versucht, die Konvertierung zum Entwrappen des neuen Werts in einen Wert eines Grundtyps zu konvertieren. Wenn dieser Versuch fehlschlägt, löst die Methode eine IllegalArgumentException.
Wenn der neue Wert nach Möglichkeit nicht durch eine Identitäts- oder Erweiterungskonvertierung in den Typ des zugrunde liegenden Felds konvertiert werden kann, löst die Methode eine IllegalArgumentException.
Wenn das zugrunde liegende Feld statisch ist, wird die Klasse, die das Feld deklariert hat, initialisiert, wenn es noch nicht initialisiert wurde.
Das Feld wird auf den möglicherweise entwrappten und erweiterten neuen Wert festgelegt.
Wenn das Feld im Typ des objFelds ausgeblendet ist, wird der Wert des Felds entsprechend den vorherigen Regeln festgelegt.
Java Dokumentation für java.lang.reflect.Field.set(java.lang.Object, java.lang.Object).
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.