我收到 ThisIsNotAObjectReference 尝试处理完全类型化的数据引用表达式时的语法消息,如下所示:
method getDataReference.
rr_value = ref #( varStructure ).
endmethod.
data(lr_value) = object->getDataReference( )->structureComponent.
我理解检索对象引用的语法是相同的,但是如何处理表达式中的完全类型化数据引用?
最佳答案
您不能将方法调用与引用组件访问链接起来。您应该像这样使用辅助变量:
CLASS lcl_class DEFINITION.
PUBLIC SECTION.
METHODS: getdatareference RETURNING VALUE(rr_value) TYPE REF TO mara.
ENDCLASS.
CLASS lcl_class IMPLEMENTATION.
METHOD getdatareference.
DATA: ls_mara TYPE mara.
rr_value = REF #( ls_mara ).
SELECT SINGLE * FROM mara INTO rr_value->*.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA(lcl) = NEW lcl_class( ).
DATA(lv_mara) = lcl->getdatareference( ).
DATA(l_matnr) = lv_mara->matnr.
关于reference - 访问返回参数的组件时出现ThisIsNotAObjectReference错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208609/