如何将结构附加到 ANY 类型的 table

How to append structure to a table of type ANY

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>

您需要创建数据 like <l_s> 的标准 table,然后将其分配给 <l_t>

create data lr_ref like standard table of <l_s>.
assign lr_ref->* to <l_t>.

append <l_s> to <l_t>.

它会起作用的。希望能帮助到你。

似乎对 ANY.

等泛型存在误解

ANYCLIKE等泛型和abstract类有些相似,不能实例化。你不能声明一个 ANY 类型的实际变量,当你这样想时,这是非常明智的: DATA foo TYPE i 在内存中的某个地方保留一个四字节的 space 供你的整数使用,但 DATA bar TYPE any 应该保留什么? (这里过于简单化了,但我希望能够理解这一点。)

您只能在参数、引用和字段符号中使用泛型类型,以确保传递或引用某种数据对象。您可以让字段符号 TYPE STANDARD TABLE 指向任何标准 table,但您必须通过其他方式提供该标准 table。而且您必须确保实际的具体类型是 suitable 以满足您的需要,即。 e.兼容您希望附加到 table.

的任何内容