SAP NetWeaver AS ABAP Release 750, ©Copyright 2016 SAP AG. Alle Rechte vorbehalten.
ABAP - Schlüsselwortdokumentation →
ABAP - Referenz →
Eingebaute Typen, Datenobjekte, Funktionen und Konstruktoren →
Konstruktoroperatoren für Konstruktorausdrücke
Syntax
... NEW|
VALUE|
CONV|
CORRESPONDING|
CAST|
REF|
EXACT|
REDUCE|
FILTER|
COND|SWITCH
type( ... ) ...
Wirkung
Ein Konstruktorausdruck besteht aus einem
- einem zum Operator passenden Daten- oder Objekttyp type, der über eine Angabe # auch implizit aus der Operandenposition abgeleitet werden kann,
- und der Angabe von typspezifischen Parametern in Klammern.
Jeder Konstruktorausdruck erzeugt ein Resultat dessen Datentyp durch den angegebenen Typ bestimmt wird.
Die in Klammern angegebenen Parameter dienen der Übergabe von Eingabewerten. Es gibt folgende Konstruktoroperatoren:
- Der Instanzierungsoperator NEW
dient der Objekterzeugung an Operandenpositionen. Das Resultat ist eine Referenzvariable vom statischen
Typ type, die auf das erzeugte Objekt zeigt. Die Eingabewerte bestimmen den Inhalt des erzeugten Objekts.
- Der Wertoperator VALUE
dient dem einfachen Versorgen komplexer Datenobjekte mit Werten an Operandenpositionen, der Erzeugung von Initialwerten beliebiger Datentypen oder der Steuerung des Resultats von
Tabellenausdrücken.
Das Resultat ist ein Datenobjekt des angegebenen Typs type. Die Eingabewerte bestimmen den Inhalt des Resultats.
- Der Konvertierungsoperator CONV
dient Konvertierungen zwischen Datentypen an Operandenpositionen. Das Resultat ist ein Datenobjekt des angegebenen Typs type, das durch Konvertierung aus einem Eingabewert hervorgeht.
- Der Casting-Operator CAST
dient Down Casts von Referenzvariablen an Operandenpositionen. Das Resultat ist eine Referenzvariable vom statischen Typ type, die durch Zuweisung aus einem Eingabewert hervorgeht.
- Der Referenzierungsoperator REF
dient der Konstruktion einer Datenreferenz auf ein Datenobjekt an Operandenpositionen oder der Steuerung des Resultats von
Tabellenausdrücken. Das Resultat ist eine
Datenreferenzvariable.
- Der Komponentenoperator CORRESPONDING
dient der Konstruktion einer Struktur oder einer internen Tabelle an einer Operandenposition. Das Resultat
ist eine Struktur oder interne Tabelle, deren Komponenten mit Werten aus namensgleichen oder über eine Mapping-Vorschrift angegebenen Komponenten eines Parameters gefüllt sind.
- Der Reduzierungsoperator REDUCE konstruiert einen Wert aus bedingten Iterationen oder aus Tabelleniterationen.
- Der Filteroperator FILTER konstruiert eine interne Tabelle durch das Filtern der Zeilen einer internen Tabelle.
- Die Konditionaloperatoren COND
und SWITCH
dienen der bedingten Erstellung von Werten oder dem Auslösen von klassenbasierten Ausnahmen an
Operandenpositionen. Das Resultat hängt von beliebigen logischen Ausdrücken oder von einer Fallunterscheidung ab.
Ein Konstruktorausdruck kann an allgemeinen Ausdruckspositionen und
funktionalen Positionen mit passendem
Operandentyp aufgeführt werden. Das Resultat wird dort als Operand verwendet. In einem
Rechenausdruck oder einem
relationalen Ausdruck geht der angegebene Typ type in den
Rechen- bzw.
Vergleichstyp ein.
Ein Ausdruck mit dem Operator VALUE, der nicht zur Erzeugung eines Initialwerts dient, darf nicht direkt in einem
arithmetischen Ausdruck
aufgeführt werden, da er dort nie zum Operandentyp passt. Ausdrücke mit den Operatoren NEW und CAST können direkt vor dem
Objektkomponenten-Selektor -> stehen und in
Verkettungen vorkommen.
Für type können Datentypen und Klassen angegeben werden, die an der aktuellen Operandenposition sicht- und verwendbar sind. Dies umfasst die
eingebauten
ABAP-Typen, mit TYPES definierte Typen, Typen aus dem
ABAP Dictionary sowie lokale und globale Klassen.
Wenn der an einer Operandenposition benötigte Datentyp eindeutig und vollständig erkennbar
ist, kann statt einer expliziten Typangabe für type das Zeichen # verwendet werden und es wird der
Operandentyp verwendet.
Wenn der Operandentyp nicht eindeutig und vollständig erkennbar ist, wird falls möglich
eine Typinferenz durchgeführt, um einen Datentyp zu bestimmen. Diese ist gegebenenfalls bei jedem Konstruktorausdruck beschrieben.
In allen Konstruktorausdrücken, in denen dies sinnvoll ist, können LET-Ausdrücke zur Definition lokaler Hilfsfelder verwendet werden.
Hinweise
- Konstruktoroperatoren lassen sich wie folgt klassifizieren:
- Konstruktoroperatoren wie NEW und VALUE konstruieren
neue Werte, für welche mit Ausnahme der Erzeugung des Initialwerts die Bestandteile übergeben werden, während Konstruktoroperatoren wie
CONV, CAST, REF und EXACT einen einzelnen übergebenen Wert konvertieren.
- Konstruktoroperatoren wie NEW, CAST und
REF geben immer Referenzvariablen zurück, während Konstruktoroperatoren wie
VALUE, CONV und EXACT alle Typen von Datenobjekten zurück geben.
- Wenn für Typ ein Datentyp aus dem ABAP Dictionary verwendet wird, erhält das Ergebnis eines Konstruktors dessen semantischen Eigenschaften.