在一行中为类接口创建实例?



也许这是一个非常基本的问题,但我没有设法找出它是否可能。

从 7.40 开始,我们有NEW运算符来创建实例。它允许在一行中创建一个对象并调用一个方法:

DATA(result) = NEW zclass( )->method( ).

但是如果我的zclass实现了zinterface,我想在一行中执行以下操作:

DATA: zif_instance TYPE REF TO zinterface.
zif_instance = NEW zclass( ).
DATA(result) = zif_instance->method( ).

可能吗?

可以有三个答案。

您可以使用接口组件选择器~

DATA(result) = NEW zclass( )->zif_instance~method( ).

或者你的类通过 ALIASES 语句为接口方法定义一个别名,比如method_alias,即ALIASES method_alias FOR zif_instance~method(注意:别名也可以与原始方法名称相同,即method(:

DATA(result) = NEW zclass( )->method_alias( ).

或者你有 CAST 运算符。

DATA(result) = CAST zif_instance( NEW zclass( ) )->method( ).

相关内容

  • 没有找到相关文章

最新更新