簡體   English   中英

如何在ABAP對象中將填充的結構/表定義為類常量

[英]How can I define a filled structure/table as class constant in ABAP Objects

我想要一個不變的預定義表作為類變量。 如何定義這樣的變量?

這是一個古老的問題,答案很簡單:只需創建一個返回常量數據的靜態方法(getter)。

而不是使用:

data(ls_sample) = lcl_myclass=>cs_data.

采用:

data(ls_sample) = lcl_myclass=>cs_data( ).

我將創建一個屬性並將其標記為“只讀”,您可以通過構造函數或使用Set-Method進行設置。

您不能在ABAP中使用類常量來這樣做。 文檔明確指出:

  • 您只能為ABAP類型的string和xstring指定一個起始值val。

  • 常量內部表,參考變量和不具有純字符型平面組件的結構只能通過IS INITIAL分配其初始值,因此始終為初始值。

正如Tapio所建議的那樣,您唯一的選擇是只讀屬性,我還建議您使用靜態屬性,該屬性可以在構造函數中初始化。

例如

CLASS lcl_test DEFINITION.
  PUBLIC SECTION.
  CLASS-DATA: itab TYPE RANGE OF i READ-ONLY.
  METHODS:
      constructor.
ENDCLASS.
CLASS lcl_test IMPLEMENTATION.
  METHOD constructor.
      itab = VALUE #( sign = 'I'  option = 'BT' ( low = 1  high = 10 )
                                                ( low = 21 high = 30 )
                                                ( low = 41 high = 50 )
                                  option = 'GE' ( low = 61 )  ).
  ENDMETHOD.
ENDCLASS.

在所有這些時間之后,將是一件令人費解的事情:

  • 建立清單
  • 序列化並將其另存為只讀字符串
  • 創建一個反序列化的吸氣劑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM