Referenzvariablen

Bei einem Parameter und einer Variablen handelt es sich jeweils um einen Speicherbereich. In einigen Fällen enthält die Variable einen Wert, beispielsweise einen bestimmten Namen oder eine bestimmte Mitarbeiter-ID. In anderen Fällen handelt es sich bei der Variablen um eine Referenzvariable, die eine Adresse enthält, an der der Wert zur Ausführungszeit gespeichert wird. Alle Variablen, die auf einem Referenztyp basieren, sind Referenzvariablen. Folgende Referenztypen sind möglich:
Die folgenden ConsoleUI-Abschnitte sind als ExternalType-Abschnitte modelliert und sind daher Referenzen:
Aus demselben Grund handelt es sich auch bei den folgenden JasperReport-Abschnitten um Referenzen:
Darüber hinaus sind zwei spezielle Datensatzstereotypen als Referenztypen definiert:

Alle Variablen, die auf diesen Typen basieren, sind Referenzvariablen.

Referenzvariablen können erste dann verwendet werden, nachdem sie initialisiert worden sind. Eine neue Referenzvariable hat standardmäßig einen Nullwert und löst eine Ausnahmebedingung vom Typ 'NullValueException' aus, wenn Sie versuchen, über diese Variable auf einen Wert, ein Feld oder eine Funktion zuzugreifen. Initialisieren Sie eine Referenzvariable entweder mit dem Operator 'new' oder mit einem SET-Werteblock. Letzere Methode ist etwas effizienter (siehe SET-Werteblöcke):
// Durch den Operator 'new' wird die
Variable ungleich null.
myDictionary Dictionary = new Dictionary;

// Gleiches gilt für einen SET-Werteblock
myDictionary Dictionary{};

Feldgruppenvariablen sind anfangs ebenfalls null. Sie können jedoch durch Angabe einer Größe initialisiert werden. Weitere Informationen finden Sie unter Feldgruppen.

Zuordnungen und Vergleiche für Referenzvariablen unterliegen anderen Regeln als denen für wertebasierte Variablen. Weitere Informationen finden Sie unter Referenzkompatibilität in EGL.

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für Referenzvariablen
Plattform Problem
COBOL-Generierung Die Typen BLOB und CLOB für große Objekte werden nicht unterstützt.
JavaScript-Generierung Die folgenden Typen werden unterstützt: ANY, BIGINT, BIN (jedoch nur ohne Dezimalstellen), Boolean, DataItem, DATE, DECIMAL, Delegate (Stellvertreter), Dictionary (Wörterverzeichnis), FLOAT, INT, NUM, NUMBER, SMALLFLOAT, SMALLINT, STRING (jedoch nur ohne Größenbeschränkung) , TIME, TIMESTAMP, NUM, MONEY, Serviceabschnitte, Schnittstellenabschnitte, externe Typen (Stereotyp JavaScript), Feldgruppen unterstützter Typen sowie nicht strukturierte Basis-, Ausnahme- und SQL-Datensatzabschnitte.

Die folgenden Typen werden nicht unterstützt: ArrayDictionary, BIN (mit Dezimalstellen), BLOB, CHAR, CLOB, DBCHAR, HEX, INTERVAL, MBCHAR, NUMC, STRING (mit Größenbegrenzung), PACF, UNICODE und strukturierte Datensatzabschnitte.

JSF Sie können Referenzvariablen nicht an die Funktion übergeben, die von der Eigenschaft 'onConstructionFunction' in einem JSF-Handler angegeben wird. Ebensowenig können Sie Referenzvariablen in das Sitzungs- oder Anforderungsobjekt stellen oder aus diesem abrufen.

Feedback