其他分享
首页 > 其他分享> > ABAP数据类型和数据对象(二)-有效性和可见性,绝对数据类型

ABAP数据类型和数据对象(二)-有效性和可见性,绝对数据类型

作者:互联网

有效性和可见性 在ABAP源码中声明性的语句上下文决定了声明部分的可见性和有效性,在ABAP程序中,有三个上下文,数据类型和数据对象是在上下文中被声明的: 说明: 绝对类型名称(ABSOLUTE TYPE NAMES)        相对于它的上下文,ABAP程序语句中类型的名字可以被静态使用,也就是相对类型名字,就像在有效性和可见性部分描述的,局部数据类型隐藏了更多的同名全局数据类型。 对于绝对类型命名,命名的类型是唯一的,一个绝对的类型名字以一个规范路径组成,比如: 说明: 例如:当类c1方法m1和m2被调用,RTTS获取到绝对类型名字\TYPE=SPFLI或者\PROGRAM=RTTI_TEST\CLASS=C1\METHOD=M2\TYPE=SPFLI给泛化类型参数p,在方法m1,m2中spfli的使用含有不同的含义。 代码如下:
CLASS c1 DEFINITION.
  PUBLIC SECTION.
    METHODS: m1,
             m2,
             m3 IMPORTING p TYPE any.
ENDCLASS.
CLASS c1 IMPLEMENTATION.
  METHOD m1.
    DATA struc TYPE spfli.
    m3( struc ).
  ENDMETHOD.
  METHOD m2.
    TYPES spfli TYPE spfli.
    DATA struc TYPE spfli.
    m3( struc ).
  ENDMETHOD.
  METHOD m3.
    DATA type_descr TYPE REF TO cl_abap_typedescr.
    type_descr = cl_abap_typedescr=>describe_by_data( p ).
    WRITE / type_descr->absolute_name.
  ENDMETHOD.
ENDCLASS.
 
START-OF-SELECTION.

data c1_ref type REF TO c1.
CREATE OBJECT c1_ref .
c1_ref->m1( ).
c1_ref->m2( ).

运行结果:

\TYPE=SPFLI \PROGRAM=ZWSPTEST10\CLASS=C1\METHOD=M2\TYPE=SPFLI

标签:name,程序,数据类型,ABAP,类型,全局,TYPE,有效性
来源: https://www.cnblogs.com/mach-arch/p/16107345.html