Interface method call error: method is unknown or PROTECTED or PRIVATE
Interface method call error: method is unknown or PROTECTED or PRIVATE
我正在查看以下示例,发布在 ABAP Keyword Documentation, page INTERFACE 上。我的更改只是附加行:REPORT
语句和以 START-OF-SELECTION
开头的语句。
在 SAP 系统上检查此代码给出
Method "M1(" is unknown or PROTECTED or PRIVATE.
但不是都定义好了public吗?我写了类似的代码,只是没有接口,检查工作正常。
REPORT ZUTEST2.
INTERFACE i1.
DATA a1 TYPE string.
METHODS m1.
EVENTS e1 EXPORTING value(p1) TYPE string.
ENDINTERFACE.
CLASS c1 DEFINITION.
PUBLIC SECTION.
INTERFACES i1.
ENDCLASS.
CLASS c1 IMPLEMENTATION.
METHOD i1~m1.
RAISE EVENT i1~e1 EXPORTING p1 = i1~a1.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
data r type ref to c1.
create object r.
call method r->m1( ).
您的 class 构造错误,应该是:
data: r type ref to i1.
create object r type c1.
call method r->m1( ).
首先,在接口i1
中定义了方法m1
。
你应该像下面这样调用
CALL METHOD r->i1~m1( ).
如果你想调用你的class的方法,你可以在你的class中定义一个ALIASES
。
CLASS c1 DEFINITION.
PUBLIC SECTION.
INTERFACES i1.
ALIASES m1
FOR i1~m1 .
ENDCLASS.
然后你打电话给
call method r->m1( ).
希望对您有所帮助。
我正在查看以下示例,发布在 ABAP Keyword Documentation, page INTERFACE 上。我的更改只是附加行:REPORT
语句和以 START-OF-SELECTION
开头的语句。
在 SAP 系统上检查此代码给出
Method "M1(" is unknown or PROTECTED or PRIVATE.
但不是都定义好了public吗?我写了类似的代码,只是没有接口,检查工作正常。
REPORT ZUTEST2. INTERFACE i1. DATA a1 TYPE string. METHODS m1. EVENTS e1 EXPORTING value(p1) TYPE string. ENDINTERFACE. CLASS c1 DEFINITION. PUBLIC SECTION. INTERFACES i1. ENDCLASS. CLASS c1 IMPLEMENTATION. METHOD i1~m1. RAISE EVENT i1~e1 EXPORTING p1 = i1~a1. ENDMETHOD. ENDCLASS. START-OF-SELECTION. data r type ref to c1. create object r. call method r->m1( ).
您的 class 构造错误,应该是:
data: r type ref to i1.
create object r type c1.
call method r->m1( ).
首先,在接口i1
中定义了方法m1
。
你应该像下面这样调用
CALL METHOD r->i1~m1( ).
如果你想调用你的class的方法,你可以在你的class中定义一个ALIASES
。
CLASS c1 DEFINITION.
PUBLIC SECTION.
INTERFACES i1.
ALIASES m1
FOR i1~m1 .
ENDCLASS.
然后你打电话给
call method r->m1( ).
希望对您有所帮助。