使用 TYPE REF TO 数据的正确方法?

gid*_*mot 5 abap assignment-operator

我已经声明了一个类型为 ref 数据的类型。所以它看起来像这样

my_type type ref to data.
Run Code Online (Sandbox Code Playgroud)

然后我声明一个内部表,我想将它分配给 my_type。

Data:
  ref_data type my_type.
  itable type it_table.

ref_data = itable.
Run Code Online (Sandbox Code Playgroud)

为什么我不能将 itable 分配给 ref_data,数据的 ref 不是通用数据类型并且可以分配给任何东西吗?

Bry*_*ain 2

这并不是数据引用的工作原理。必须键入数据引用,但您可以在运行时键入它。

data: ref_data type ref to data.
data: itable type it_table.

"you access the data in a data reference via a field symbol
field-symbols: <dref> type any.  

create data ref_data type it_table.

assign ref_data->* to <dref>.

<dref> = itable.
Run Code Online (Sandbox Code Playgroud)

我现在在动态类型变量 ref_data 中有一个 itable 的副本,可以通过字段 symbol 访问。