ABAP Keyword Documentation → ABAP - Reference → Creating Objects and Values → CREATE DATA → CREATE DATA - REF TO
Creating Reference Variables
This example demonstrates how to create a reference variable.
Other versions: 7.31 | 7.40 | 7.54
Source Code
DATA intf_name TYPE string.
DATA cls_name TYPE string.
DATA dref TYPE REF TO data.
FIELD-SYMBOLS <ref> TYPE any.
FIELD-SYMBOLS <attr> TYPE any.
intf_name = '\PROGRAM=DEMO_CREATE_REFERENCE\INTERFACE=INTF'.
CREATE DATA dref TYPE REF TO (intf_name).
ASSIGN dref->* TO <ref>.
cls_name = '\PROGRAM=DEMO_CREATE_REFERENCE\CLASS=CLS'.
CREATE OBJECT <ref> TYPE (cls_name).
ASSIGN ('<REF>->ATTR') TO <attr>.
cl_demo_output=>display_data( <attr> ).
Description
Dynamic generation of an interface reference variable. The absolute type name is used for the name of the local interface.
The reference variable is assigned to a field symbol <ref> by means of dereferencing. According to the
general typing rules, the field symbol must either be typed completely generically or typed with reference to the interface intf.
The dynamically generated reference variable is used to create and address an object of a class. As
this field symbol is completely generic, only the display variant of the dynamic ASSIGN (and not a special
Dynamic Access) can be used to access the interface attribute.