DATA ls TYPE string.
DATA lr_ref TYPE REF TO data.
FIELD-SYMBOLS <'l_s> TYPE any.
FIELD-SYMBOLS <'l_t> TYPE STANDARD TABLE.
ls = 'test'.
GET REFERENCE OF ls INTO lr_ref.
ASSIGN lr_ref->* TO <'l_s>.
现在我该如何将<'l_s>
追加到<'l_t>
?
答案 0 :(得分:4)
您需要创建数据like
<l_s>
的标准表,然后将其分配给<l_t>
。
create data lr_ref like standard table of <l_s>.
assign lr_ref->* to <l_t>.
append <l_s> to <l_t>.
它会起作用。希望能帮助到你。
答案 1 :(得分:0)
似乎对ANY
等通用类型存在误解。
ANY
,CLIKE
和其他泛型类型有点类似于抽象类,因为它们无法实例化。你不能声明一个ANY
类型的实际变量,当你这样想时它是非常明智的:DATA foo TYPE i
在你的整数内存中保留一个四字节的空间,但应该是什么DATA bar TYPE any
保留? (这里过于简单,但我希望能够明白这一点。)
您只能在参数,引用和字段符号中使用泛型类型,它们可用于确保传递或引用某种数据对象。您可以让字段符号TYPE STANDARD TABLE
指向任何标准表,但您必须通过其他方式提供该标准表。而且你必须确保实际 - 具体 - 类型适合你的需要,我。即与您希望附加到桌子上的任何内容兼容。