首页 > 代码库 > ABAP运行时类型服务 Runtime Type Services (RTTS)

ABAP运行时类型服务 Runtime Type Services (RTTS)

 

RTTS (RunTime Type Services)允许获得变量的定义,或者在程序运行期间创建它们。RTTS由2个组件组成:

  • RTTI(RunTime Type Identification)用于获取已存在类型或已存在变量的定义。
  • RTTC(RunTime Type Creation)用于使用定义创建新的变量;需要创建的变量必须通过ABAP语句CREATE DATA ... TYPE HANDLE创建。

RTTI和RTTC可以通过使用类CL_ABAP_*DESCR中的方法访问。每个类都有RTTI和RTTC方法。(下面的表格效果太差,建议直接看英文原文)

Class

RTTI methods

RTTC methods  

Attirbutes

Comments

 

CL_ABAP_TYPEDESCR  |  |  |  |  |

 

describe_by_data
describe_by_data_ref
describe_by_object_ref
describe_by_name

absolute_name
type_kind
length
decimals
kind

describe_by_name 可以获得DDIC对象的定义.
kind代表通用类型(元素,结构,表,引用,类,接口),而type_kind代表详细类型(character, string, flat structure, 等)

 

  |??CL_ABAP_DATADESCR  |   |  |   |  |   |  |   |  |   |

 

 

is_instantiatable
is_read_only
applies_to_data
applies_to_data_ref
get_data_type_kind

 

 

  |   |??CL_ABAP_ELEMDESCR  |   |  |   |  |   |  |   |  |   |  |   |  |   |  |   |  |   |  |   |  |   |

 

get_n
get_c
get_string
get_xstring
get_i
get_f
get_d
get_t
get_x
get_p

edit_mask
help_id
output_length

 

 

  |   |??CL_ABAP_REFDESCR  |   |  |   |  |   |

get_referenced_type
get_ref_to_data
get_ref_to_object

create

 

对应"type ref to data"的变量,和"type ref to object"的对象

 

  |   |??CL_ABAP_COMPLEXDESCR

 

 

 

 

  |       |??CL_ABAP_STRUCTDESCR  |       |  |       |  |       |

get_components

create

struct_kind
components
has_include

 

 

  |       |??CL_ABAP_TABLEDESCR  |  |  |  |  |

get_table_line_type

create

key
initial_size
key_defkind
has_unique_key
table_kind

 

 

  |??CL_ABAP_OBJECTDESCR      |      |      |      |      |

 

 

interfaces
types
attributes
methods
events

 

 

      |??CL_ABAP_CLASSDESCR      |      |      |      |

get_super_class_type
get_friend_types
get_class_name
is_shared_memory_enabled

 

class_kind
create_visibility

 

 

      |??CL_ABAP_INTFDESCR

get_interface_type
get_type
get_attribute_type
get_method_parameter_type
get_event_parameter_type

 

intf_kind

 

SAP Training : ABAP351

 

原文标题:Runtime Type Services (RTTS)

本文链接:http://www.cnblogs.com/hhelibeb/p/7043550.html

参考文章:动态编程

 

ABAP运行时类型服务 Runtime Type Services (RTTS)