storeField()

Die Systemfunktion 'javaLib.storeField()' stellt den Wert eines Klassenfelds oder Objektfelds in den EGL-Java™-Objektbereich.

Ist der Name, der das Objekt angibt, bereits im Objektbereich vorhanden, ist die Aktion äquivalent zu den folgenden Schritten:

Wenn das Klassen- oder Objektfeld ein Java-Basiselement anstelle eines Objekts enthält, speichert EGL ein Objekt, das dieses Basiselement darstellt. Enthält das Feld beispielsweise ein Element vom Typ 'int', speichert EGL ein Objekt des Typs 'java.lang.Integer'.

Weitere Informationen zum EGL-Java-Objektbereich, in dem 'javaLib.storeField()' und ähnliche Funktionen ausgeführt werden, finden Sie im Abschnitt 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 (siehe ExternalType-Abschnitt).

Syntax

  javaLib.storeField(
    Speicher-ID javaObjId in,
    Kennung_oder_Klasse javaObjIdOrClass in,
    Feld STRING in)
Speicher-ID
Ein von der Groß-/Kleinschreibung abhängiger Name zur Identifizierung des Objekts. Bei der Eingabe kann es sich um eine beliebige Variable oder einen beliebigen Ausdruck handeln, die/der mit dem Typ STRING zuordnungskompatibel ist und in den Typ 'objID' umgesetzt wird, wie in einem späteren Beispiel gezeigt wird. EGL schneidet Einzel- und Doppelbyteleerzeichen am Anfang und Ende des Argumentwertes ab.
Kennung_oder_Klasse
Dieses Argument ist eine der folgenden Entitäten:
  • Eine Java-Objekt-ID (objID) für den Zugriff auf ein Feld eines Java-Objekts.
  • Eine Zeichenfolge, die den Namen einer Java-Klasse darstellt, um auf ein Feld einer Java-Klasse zuzugreifen. EGL schneidet Einzel- und Doppelbyteleerzeichen am Anfang und Ende des Argumentwertes ab. Bei der Angabe des Wertes muss die Groß-/Kleinschreibung beachtet werden.
Feld
Der von der Groß-/Kleinschreibung abhängige Name eines Felds im angegebenen Objekt bzw. in der angegebenen Klasse. 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.

Beispiel

In diesem Beispiel stellt die Systemfunktion 'javaLib.storeField()' den Wert von myField in den Objektbereich.

  javaLib.storeField("myStoreId" as "objID:java",
      "myId" as "objID:java", "myField");

Hinweise zu Fehlern

Ist die Programmeigenschaft 'v60ExceptionCompatibility' nicht oder auf NO gesetzt, führt eine Ausnahmebedingung dazu, dass eine Ausnahmebedingung vom Typ 'JavaObjectException' ausgelöst wird. Andere Fehler lösen eine Ausnahmebedingung vom Typ 'RuntimeException' aus.

Ist die Programmeigenschaft 'v60ExceptionCompatibility' auf YES gesetzt, kann ein Fehler während der Verarbeitung von 'javaLib.storeField()' dazu führen, dass 'sysVar.errorCode' auf einen in der nächsten Tabelle aufgeführten Wert gesetzt wird.

Tabelle 1. Fehlercodes für 'javaLib.storeField()'
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.
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.

Feedback