枚举对象是枚举类型的数据对象。枚举对象只能包含类型为枚举类型的枚举值。ABAP从版本7.51开始支持它们。

这是一种常见的模式。在ABAP 7.51之前,人们通常用如下方式实现类似的功能:

CLASS cx_wrong_size DEFINITION INHERITING FROMcx_static_check.ENDCLASS.CLASS shirt DEFINITION.PUBLIC SECTION.TYPES tsize TYPEi.CONSTANTS:
size_s
TYPE tsize VALUE 0,
size_m
TYPE tsize VALUE 1,
size_l
TYPE tsizeVALUE 2,
size_xl
TYPE tsize VALUE 3.METHODSconstructorIMPORTING size TYPEtsize
RAISING cx_wrong_size.
...
PRIVATE SECTION.DATAsizeTYPEtsize.ENDCLASS.CLASS shirt IMPLEMENTATION.METHODconstructor.IF size <> size_s ANDsize<> size_m ANDsize<> size_l ANDsize<>size_xl.RAISE EXCEPTION TYPEcx_wrong_size.ENDIF.me->size =COND #(
WHEN size
<> size_s ANDsize<> size_m ANDsize<> size_l ANDsize<> size_xl THENTHROW cx_wrong_size( )ELSEsize ).ENDMETHOD.ENDCLASS.

标签: none

添加新评论