ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Programmablaufsteuerung →  Kontrollstrukturen →  Verzweigungen → 

CASE TYPE OF

Kurzreferenz

Syntax

CASE TYPE OF oref
  [WHEN TYPE class|intf [INTO target1].
    [statement_block1]]
  [WHEN TYPE class|intf [INTO target2].
    [statement_block2]]
  ...
  [WHEN OTHERS.
    [statement_blockn]]
ENDCASE.

Zusatz:

... INTO target

Wirkung

Spezielle Fallunterscheidung für Objektreferenzvariablen. Diese Form einer mit CASE eingeleiteten Kontrollstruktur überprüft den dynamischen Typ einer nicht initialen und den statischen Typ einer initialen Objektreferenzvariable oref. Für oref muss eine Objektreferenzvariable vom statischen Typ einer Klasse oder eines Interface angegeben werden. Bei oref handelt es sich um eine allgemeine Ausdrucksposition.

Hinter WHEN TYPE ist eine an dieser Stelle verwendbare Klasse class oder ein Interface intf anzugeben. Es wird der erste Anweisungsblock statement_block ausgeführt, für den die Klasse class bzw. das Interface intf allgemeiner oder gleich dem

Wenn dies für keine Klasse class bzw. Interface intf zutrifft, wird der Anweisungsblock hinter WHEN OTHERS ausgeführt. Es kann kein Objekttyp class bzw. intf angegeben werden, für den bereits statisch erkennbar ist, dass er die Bedingung nicht erfüllen kann.

Hinweise

IF oref IS INSTANCE OF class|intf.
  [statement_block1]
ELSEIF oref IS INSTANCE OF class|intf.
  [statement_block2]
...
ELSE.
  [statement_blockn]
ENDIF.

Beispiel

Siehe Fallunterscheidung CASE TYPE OF für Ausnahmen.

Zusatz

... INTO target

Wirkung

Hinter dem optionalen Zusatz INTO kann zu jeder Anweisung WHEN TYPE einer mit CASE TYPE OF eingeleiteten Fallunterscheidung wie folgt eine Zielvariable target angegeben werden:

Wenn der Zusatz INTO bei der ersten WHEN-Anweisung aufgeführt ist, welche die Bedingung erfüllt, wird vor Ausführung des Anweisungsblocks die Referenz in oref an ref zugewiesen, wobei sowohl Up Casts als auch Down Casts stattfinden können.

Hinweis

Eine Anweisung

WHEN TYPE class|intf INTO ref.

ist eine gleichbedeutende Kurzform für

WHEN TYPE class|intf.
  ref = oref.

Eine Anweisung

WHEN TYPE class|intf INTO DATA(ref).

ist eine gleichbedeutende Kurzform für

WHEN TYPE class|intf.
  DATA(ref) = CAST class|intf( oref ).


Beispiel

Siehe Fallunterscheidung CASE TYPE OF für RTTI.



Weiterlesen
WHEN TYPE
Fallunterscheidung CASE TYPE OF für Ausnahmen
Fallunterscheidung CASE TYPE OF für RTTI