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

问题描述 投票:0回答:3

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

my_type type ref to data.

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

Data:
  ref_data type my_type.
  itable type it_table.

ref_data = itable.

为什么我不能将 itable 赋值给 ref_data,难道 ref to data 不是通用数据类型并且可以赋值给任何东西吗?

abap assignment-operator
3个回答
3
投票

这与其他编程语言非常相似,不是键入变量或引用的问题。您正在尝试为指针变量赋值——这在任何地方都行不通。您需要使用GET REFERENCE OF itable INTO ref_data.


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.

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


0
投票

您需要获得对您的结构的引用:

DATA itable TYPE it_table.
DATA my_type TYPE REF TO data.

GET REFERENCE OF itable INTO my_type.
© www.soinside.com 2019 - 2024. All rights reserved.