我试图基于实例创建排序表。 在我的编码下面:
CLASS my_fancy_pony DEFINITION.
PUBLIC SECTION.
DATA mv_nice_key TYPE i.
ENDCLASS.
CLASS my_fancy_pony IMPLEMENTATION.
ENDCLASS.
DATA lt_my_fancy_ponys TYPE SORTED TABLE OF REF TO my_fancy_pony WITH UNIQUE KEY mv_nice_key.
DATA lt_my_fancy_ponys TYPE SORTED TABLE OF REF TO my_fancy_pony WITH UNIQUE KEY table_line->mv_nice_key.
这没有通过语法检查。 你能告诉我我怎么能做到吗?
答案 0 :(得分:2)
不能将类直接用作结构。
但是,您可以构建符合您需要的地图:
TYPES:
BEGIN OF map_entry,
mv_nice_key TYPE i,
ref_to_object TYPE REF TO my_fancy_pony,
END OF map_entry.
TYPES map_type TYPE SORTED TABLE OF map_entry WITH UNIQUE KEY mv_nice_key.
DATA(lt_my_fancy_pony_map) = VALUE map_type(
FOR each IN lt_my_fancy_ponys
( mv_nice_key = each->mv_nice_key
ref_to_object = each ) ).
该地图可以为您需要的类的任何属性编号:
TYPES:
BEGIN OF map_entry,
mv_nice_key TYPE i,
some_other_att TYPE i,
" ...
ref_to_object TYPE REF TO my_fancy_pony,
END OF map_entry.
TYPES map_type TYPE SORTED TABLE OF map_entry WITH NON-UNIQUE KEY table_line.
DATA(lt_my_fancy_pony_map) = VALUE map_type(
FOR each IN lt_my_fancy_ponys
( mv_nice_key = each->mv_nice_key
some_other_att = each->some_other_att
" ...
ref_to_object = each ) ).