The piece of code presented in this article is just a short demonstration of how you can access class attributes dynamically – when the attribute name is stored in a variable which value is determined during run time.
CLASS lcl_myclass DEFINITION.
PUBLIC SECTION.
DATA:
m_dynvar TYPE char10,
m_var_a TYPE c VALUE 'X',
m_var_b TYPE c VALUE 'Y'.
ENDCLASS.
DATA:
lr_myclass TYPE REF TO lcl_myclass.
FIELD-SYMBOLS:
<fs_var> TYPE any.
CREATE OBJECT lr_myclass.
lr_myclass->m_dynvar = 'm_var_A'.
ASSIGN lr_myclass->(lr_myclass->m_dynvar) TO <fs_var>.
WRITE <fs_var>.
lr_myclass->m_dynvar = 'm_var_B'.
ASSIGN lr_myclass->(lr_myclass->m_dynvar) TO <fs_var>.
WRITE <fs_var>.
Output:
X Y