und was passiert an folgender Stelle ?=>
descr_ref =
cl_abap_typedescr=>describe_by_data( s_stadt ).
Code: Alles auswählen.
TYPES:
BEGIN OF t_stadt,
plz(5) TYPE N,
ort(25) TYPE C,
END OF t_stadt.
DATA:
s_stadt TYPE t_stadt,
descr_ref TYPE REF TO cl_abap_typedescr.
descr_ref =
cl_abap_typedescr=>describe_by_data( s_stadt ).
WRITE: / 'Typename: ', descr_ref->absolute_name,
/ 'Art: ', descr_ref->type_kind,
/ 'Laenge: ', descr_ref->length,
/ 'Dezimalstellen: ', descr_ref->decimals.
so könnte man auch auf die restlichen Funktionen der Klasse nicht zugeifendescr_ref =
cl_abap_typedescr=>describe_by_data( s_stadt ).
oderdescr_ref->absolute_name
denn dann bekäme man die Fehlermeldungdescr_ref->length
Dass man über => ein statisches Attribut oder eine statische Methode der oder einer Klasse zugreifen kann ist OK allerdings lebt descr_refZugriff über 'NULL' Objektreferenz nicht möglich
Mit anderen Worten ist mir das nicht ganz klar wie man hier auf die(Das Ergebnis wird als Returning-Parameter an descr_ref übergeben.)
...
Von einer solcherart definierten Klasse können Sie keine Objekte mit CREATE OBJECT erzeugen und demnach auch nicht auf die Instanzkomponenten der Klasse zugreifen. Die statischen Komponenten einer abstrakten Klasse können jedoch durchaus benutzt werden, denn für sie ist keine Instanz nötig. Der Hauptzweck abstrakter Klassen ist ihre Rolle als Vorlage für Unterklassen. Von abstrakten Klassen können nicht-abstrakte Unterklassen abgeleitet werden, von denen dann Objekte erzeugt werden können.
...