我有一个程序 ZPROG1_TEST 我在其中定义了一个本地类 LCL_PROG1_HELPER
.
我有第二个程序 ZPROG2_TEST,我想在其中定义对此类的变量引用。
难道我没有这样做的语法可能性吗?
或者这在理论上是否可以使用 RTTI 类,如 CL_ABAP_CLASSDESCR
?
额外
为什么我想这样做是因为我有一个自定义表单 ZMM_MEDRUCK 需要知道它正在打印的 ME32N 文档是否已更改但未保存。
我已经确定了我需要查询其属性的确切对象,但其中一些在设计时被定义为通用接口(interface),例如 IF_SERIALIZABLE_MM
,并且我需要将它们强制转换为我知道这些对象将成为其实例的本地类,例如\FUNCTION-POOL=MEGUI\CLASS=LCL_APPLICATION。
我当然可以尝试动态方法调用而不关心任何事情,但既然我在这里,我想我会先问这个问题。
最佳答案
你可以那样做。
REPORT ZPROG1_TEST.
INTERFACE lif_prog1_helper.
METHODS:
test.
ENDINTERFACE.
CLASS LCL_PROG1_HELPER DEFINITION.
PUBLIC SECTION.
INTERFACES:
lif_prog1_helper.
ALIASES:
test FOR lif_prog1_helper~test.
ENDCLASS.
CLASS LCL_PROG1_HELPER IMPLEMENTATION.
METHOD test.
WRITE / sy-repid.
ENDMETHOD.
ENDCLASS.
REPORT ZPROG2_TEST.
DATA: g_test TYPE REF TO object.
START-OF-SELECTION.
CREATE OBJECT g_test TYPE ('\PROGRAM=ZPROG1_TEST\CLASS=LCL_PROG1_HELPER').
CALL METHOD g_test->('TEST').
CALL METHOD g_test->('LIF_PROG1_HELPER~TEST').
关于oop - 可以将变量定义为对另一个程序中定义的本地类的引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18100225/