动态访问方法

动态调用方法时使用dynamic符号()

call method ref->(f)

调用静态方法:

call method class=>(f)

call method (c)=>meth

call method (c)=>(f)

 

使用动态调用方法时,传递的str类型中内容最好为大写,否则会报错


*&---------------------------------------------------------------------*
*& Report  ZOO_ZF5
*&
*&---------------------------------------------------------------------*
*&
*&调用动态方法
*&---------------------------------------------------------------------*

REPORT zoo_zf5 NO STANDARD PAGE HEADING.
*----------------------------------------------------------------------*
*       CLASS c5 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c5 DEFINITION.
  PUBLIC SECTION.
    DATA: gt_itab TYPE TABLE OF sflight,
          gs_str TYPE sflight.
    METHODS: get_data,
             wri_data.
ENDCLASS.                    "c5 DEFINITION

*----------------------------------------------------------------------*
*       CLASS c5 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c5 IMPLEMENTATION.
  METHOD: get_data.
    SELECT * INTO TABLE gt_itab
      FROM sflight
      UP TO 5 ROWS.
  ENDMETHOD.
  METHOD: wri_data.
    LOOP AT gt_itab INTO gs_str.
      WRITE:/ gs_str-carrid,gs_str-connid.

    ENDLOOP.
    ENDMETHOD.                 "get_data
ENDCLASS.                    ".

DATA: go_oref TYPE REF TO c5.
DATA: gv_mth TYPE string.

START-OF-SELECTION.
  CREATE OBJECT go_oref.
  gv_mth = 'GET_DATA'.
  call METHOD go_oref->(gv_mth).
  gv_mth = 'WRI_DATA'.
  call METHOD go_oref->(gv_mth).


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值