Ansicht
Dokumentation
ABAPCREATE_OBJECT_EXPLICIT - CREATE OBJECT EXPLICIT
Fill RESBD Structure from EBP Component Structure BAL_S_LOG - Application Log: Log header dataDiese Dokumentation steht unter dem Copyright der SAP AG.
CREATE OBJECT, TYPE
CREATE OBJECT oref $[area_handle$]
TYPE ${ class
$[parameter_list$] $}
$| ${ (name) $[parameter_list$|
parameter_tables$] $}.
Wirkung
Erzeugung einer Instanz einer explizit angegebenen Klasse. Es kann eine konkrete Klasse angegeben werden, die spezieller als der statische Typ der Objektreferenzvariablen oref oder identisch mit ihm ist. Die Referenzvariable oref kann eine Klassenreferenzvariable oder eine Interfacereferenzvariable sein. Der Name der Klasse kann wie folgt angegeben werden:
- class
- Direkte statische Angabe als class.
- (name)
- Angabe als Inhalt eines zeichenartigen Datenobjekts name. Das Datenobjekt name muss bei Ausführung der Anweisung die Bezeichnung der Klasse in Großbuchstaben enthalten. Die Bezeichnung der Klasse in name kann auch als absoluter Typname erfolgen. Es können folgende Angaben für name unterschieden werden:
- Literal oder Konstante
- Wenn das Datenobjekt name als Zeichenliteral oder als Konstante angegeben ist, kann es statisch ausgewertet werden und die angegebene Klasse wird als verwendetes Objekt erkannt.
- Variable
- Wenn das Datenobjekt name als Variable angegeben ist, ist dies eine rein dynamische Angabe und es findet keine statische Auswertung des Inhalts statt.
- Bei Ausführung der Anweisung wird name in beiden Fällen erst zur Laufzeit ausgewertet.
Die Klasse muss an der aktuellen Stelle verwendbar sein:
- Die Objekterzeugung muss vom Zusatz CREATE der Klassendefinition erlaubt sein.
- Die Erzeugung eines Objekts einer globalen Klasse muss von der Paketprüfung erlaubt sein.
Hinweise
- Bei der dynamischen Angabe der Klasse können die Parameter entweder statisch in parameter_list oder ebenfalls dynamisch in parameter_tables angegeben werden.
- Der Instanzoperator
NEW wirkt bei Verwendung einer Klasse wie die Anweisung CREATE OBJECT oref TYPE class und kann an
allgemeinen Ausdruckspositionen verwendet werden. Die dynamische Angabe von name ist hier nicht möglich. Siehe
Dynamische Aufrufe.
Beispiel
Erzeugung einer Instanz einer Klasse cls durch expliziten Bezug auf die Klasse. Der statische
Typ der Referenzvariablen ist die Wurzelklasse object und damit allgemeiner als jede andere Klasse. Zugriffe auf Komponenten müssen dynamisch erfolgen oder es muss wie hier gezeigt gecastet werden.
BAL_S_LOG - Application Log: Log header data CPI1466 during Backup
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 4528 Date: 20240328 Time: 223443 sap01-206 ( 57 ms )