ABAP Keyword Documentation → ABAP − Reference → Creating Objects and Values → CREATE DATA → CREATE DATA - REF TO
Creating Reference Variables
This example demonstrates how reference variables are created.
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
Creates an interface reference variable dynamically. The absolute type name is used for the name of the local interface.
The reference variable is assigned to a field symbol <ref>
using dereferencing. According to the
general typing rules, the field symbol must either be typed in full generically or typed with reference to the interface intf
.
The dynamically created reference variable is used to create and address an object of a class. Since
this field symbol is fully generic, only the display variant of the dynamic ASSIGN
(and not a special
dynamic access) can be used to access the interface attribute.