setField()
Die Systemfunktion 'javaLib.setField()' setzt den Wert eines Felds in einem lokalen Java™-Objekt oder einer lokalen Java-Klasse. Hierzu ruft EGL die lokale Java-Methode 'set' für das entsprechende Feld auf.
Weitere Informationen zum EGL-Java-Objektbereich, in dem 'javaLib.setField()' und ähnliche Funktionen ausgeführt werden, finden Sie im Abschnitt zu den Java-Zugriffsfunktionen. EGL verwaltet diese Methode für Java-Zugriff zwecks Kompatibilität mit früheren Versionen. Verwenden Sie für neuen Code die leistungsfähigere ExternalType-Syntax. Weitere Informationen finden Sie in 'ExternalType (Abschnitt)'.
Syntax
javaLib.setField(
Kennung_oder_Klasse javaObjId in,
Feld STRING in,
Wert JavaType in)
- Kennung_oder_Klasse
- Dieses von der Groß-/Kleinschreibung abhängige Argument ist eine der folgenden Entitäten:
- Eine Java-Objekt-ID (objID) zum Festlegen des Werts eines Felds in einem lokalen Java-Objekt.
- Eine Zeichenfolge, die einen Klassennamen darstellt, um einen Feldwert in einer Java-Klasse zu setzen.
Bei der Eingabe kann es sich um eine beliebige Variable oder einen beliebigen Ausdruck handeln, die/der mit dem Typ STRING zuordnungskompatibel ist. Wenn Sie die Kennung eines Objekts angeben, muss diese Kennung in 'objID' umgesetzt werden, wie in einem späteren Beispiel gezeigt wird. EGL schneidet Einzel- und Doppelbyteleerzeichen am Anfang und Ende des Argumentwertes ab.
- Feld
- Der von der Groß-/Kleinschreibung abhängige Name des zu ändernden Felds. Bei der Eingabe kann es sich um eine beliebige Variable oder einen beliebigen Ausdruck handeln, die/der mit dem Typ STRING zuordnungskompatibel ist. Einzel- und Doppelbyteleerzeichen werden am Anfang und Ende der Zeichenfolge abgeschnitten.
- Wert
- Der eigentliche Wert. Möglicherweise ist eine Umsetzung erforderlich; Informationen hierzu enthält das Thema 'EGL-Basiselemente zu
Java zuordnen.' Es gelten die Regeln für die Java-Typenkonvertierung. Wenn Sie beispielsweise einem als 'int' deklarierten Feld einen Wert vom Typ 'short' zuordnen, tritt kein Fehler auf.Ein Wert eines externen EGL-Typs ist gültig, wie nachfolgend gezeigt:
SharedResourcePowerServer srps = JavaLib.getSharedResourcePowerServer(); JavaLib.setField("myId" as "objID:java", "myField", srps);
Beispiel
Im folgenden Beispiel wird das Feld myField in dem durch myId angegebenen Feld auf den Wert in myNumField gesetzt.
javaLib.setField("myId" as "objID:java", "myField",
myNumField as "java:short");
Hinweise zu Fehlern
Ist die Programmeigenschaft 'v60ExceptionCompatibility' nicht oder auf NO gesetzt, führt eine Ausnahmebedingung dazu, dass EGL eine Ausnahmebedingung vom Typ 'JavaObjectException' auslöst. Andere Fehler führen dazu, dass EGL eine Ausnahmebedingung vom Typ 'RuntimeException' auslöst.
Ist die Programmeigenschaft 'v60ExceptionCompatibility' auf YES gesetzt, kann ein Fehler während der Verarbeitung von 'javaLib.setField()' dazu führen, dass 'sysVar.errorCode' auf einen in der nächsten Tabelle aufgeführten Wert gesetzt wird.
| Wert in 'sysVar.errorCode' | Beschreibung |
|---|---|
| 00001000 | Es wurde eine Ausnahmebedingung durch eine aufgerufene Methode oder infolge einer Klasseninitialisierung ausgelöst. |
| 00001001 | Das Objekt ist leer (null), oder die angegebene Kennung ist nicht im Objektbereich vorhanden. |
| 00001002 | Eine öffentliche Methode, ein öffentliches Feld oder eine öffentliche Klasse mit dem angegebenen Namen ist nicht vorhanden oder kann nicht geladen werden. |
| 00001003 | Der EGL-Basiselementtyp stimmt nicht mit dem in Java erwarteten Typ überein. |
| 00001007 | Bei dem Versuch, Informationen zu einer Methode oder einem Feld abzurufen, wurde eine Ausnahmebedingung vom Typ 'SecurityException' oder 'IllegalAccessException' ausgelöst. Oder es wurde versucht, den Wert eines als 'final' deklarierten Feldes zu setzen. |
| 00001009 | Anstelle eines Klassennamens muss eine Kennung angegeben werden. Die Methode oder das Feld ist nicht statisch. |