ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Objekte und Werte erzeugen → 

NEW - Instanzierungsoperator

Syntax

... NEW type( ... ) ...

Wirkung

Ein Konstruktorausdruck mit dem Instanzierungsoperator NEW erzeugt ein anonymes Datenobjekt oder eine Instanz einer Klasse. Das Resultat ist eine Referenzvariable, die auf das erzeugte Objekt zeigt. Für type kann angegeben werden:

Es gelten die Beschreibungen für die CREATE-Anweisungen. Nach erfolgreicher Objekterzeugung wird das erzeugte Objekt über die in den Klammern angegebenen Parameter mit Werten versorgt. Die Syntax der Parameterübergabe hängt vom verwendeten Typ ab, wobei es für komplexe Typen entsprechend spezialisierte Arten der Parameterübergabe gibt.

Bei einer Zuweisung eines Konstruktorausdrucks mit NEW an eine Referenzvariable werden die Angaben in den Klammern ausgewertet, bevor das erzeugte Objekt an die Zielvariable gebunden wird.

Rückgabewert

Der Instanzierungsoperator NEW setzt sy-subrc bei erfolgreicher Erzeugung der Instanz einer Klasse auf den Wert 0. Da nicht-klassenbasierte Ausnahmen des Instanzkonstruktors nicht behandelt werden können, wird sy-subrc nie auf einen Wert ungleich null gesetzt. Bei der Erzeugung von anonymen Datenobjekten wird der Rückgabewert sy-subrc nicht gesetzt.

Hinweise

Beispiel

Erzeugung eines anonymen Datenobjekts vom Typ i mit dem Wert 555 und einer Instanz einer lokalen Klasse cls, wobei diese implizit aus dem statischen Typ von oref abgeleitet wird. Die letzte Anweisung könnte in diesem Fall genauso explizit als oref = NEW cls( ) oder dann mit Inline-Deklaration statt mit vorangehender DATA-Anweisung als DATA(oref) = NEW cls( ) geschrieben werden.

CLASS cls DEFINITION.
  ...
ENDCLASS.

DATA: dref TYPE REF TO data,
      oref TYPE REF TO cls.

dref = NEW i( 555 ).
oref = NEW #( ).



Weiterlesen
NEW - Initialwert für alle Typen
NEW - Einzelwert für alle Datentypen
NEW - Strukturen
NEW - interne Tabellen
NEW - Klassen