zoukankan      html  css  js  c++  java
  • 【转载】SAP ABAP开发技术总结]数据引用(data references)、对象引用(object references)

    1.12.     数据引用、对象引用

    TYPE REF TO data                     数据引用data references

    TYPE REF TO object               对象引用object references

    除了object,所有的通用类型都能直接用TYPE后面(如TYPE data,但没有TYPE object,object不能直接跟在TYPE后面,只能跟在TYPE REF TO后面)

    TYPE REF TO 后面可接的通用类型只能data(数据引用)或者是object(对象引用)通用类型,其他通用类型不行

    1.12.1.           数据引用Data References

    DATA: dref TYPE REF TO i ."dref即为数据引用,即数据指针,指向某个变量或常量,存储变量地址
    CREATE DATA dref.
    dref->* = 2147483647."可直接解引用使用,不需要先通过分配给字段符号后再使用

    DATA: BEGIN OF strct,
        c,
      END OF strct.
    DATA: dref LIKE REF TO strct .
    CREATE DATA dref .
    dref->*-c = 'A'.

    TYPES: tpy TYPE c.
    DATA: c1 TYPE REF TO tpy.
    DATA: c2 LIKE REF TO c1."二级指针
    GET REFERENCE OF 'a' INTO c1.
    GET REFERENCE OF c1 INTO c2.
    WRITE: c2->*->*."a

    1.12.2.           对象引用Object references

    CLASS cl DEFINITION.
      PUBLIC SECTION.
        DATA: i VALUE 1.
    ENDCLASS.
    CLASS cl IMPLEMENTATION.
    ENDCLASS.

    DATA: obj TYPE REF TO cl.
    CREATE OBJECT obj."创建对象

    DATA: oref LIKE REF TO obj. "oref即为对象引用,即对象指针,指向某个对象,存储对象地址
    GET REFERENCE OF obj INTO oref. "获取对象地址
    WRITE: oref->*->i."1

    1.12.3.           GET REFERENCE OF获取变量/对象/常量地址

    DATA: e_i3 TYPE REF TO i .
    GET REFERENCE OF 33 INTO e_i3.
    WRITE: e_i3->*."33
    "但不能修改常量的值
    "e_i3->* = 44.

    DATA: i TYPE i VALUE 33,
          dref LIKE REF TO i."存储普通变量的地址
    GET REFERENCE OF i INTO dref.
    dref->* = 44.
    WRITE: i. "44

    原文出自 江正军 技术博客,博客链接:www.cnblogs.com/jiangzhengjun

  • 相关阅读:
    非法字符:"ufeff"
    IntelliJ IDEA 创建Web项目
    dubbo 响应超时异常: com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout.
    Spring Cacheable 注解不缓存null值
    linux 中 permission denied的问题
    unZip/Zip的安装
    @GeneratedValue 四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO
    【nginx】nginx tomcat session 共享配置
    [IDEA] IDEA 集成PlantUML
    【linux】 解决linux下vsftp 500 OOPS: cannot change directory:/home/ftp/ 办法
  • 原文地址:https://www.cnblogs.com/yjyongil/p/11700452.html
Copyright © 2011-2022 走看看