2

ゲッターなしでオブジェクトのプライベート属性の値を取得する方法はありますか? クラスを変更することは、いかなる形状または形式においても許可されていません。

プライベート属性を持つクラスの例を以下に示します。

CLASS counter DEFINITION.
  PUBLIC SECTION.
    METHODS: set IMPORTING value(set_value) TYPE i.
  PRIVATE SECTION.
    DATA count TYPE i.
ENDCLASS.                    "counter DEFINITION 

CLASS counter IMPLEMENTATION.
  METHOD set.
    count = set_value.
  ENDMETHOD.                    "set
ENDCLASS.                    "counter IMPLEMENTATION

の値を取得するにはどうすればよいcountですか? countプライベートで保護されていないため、カウンターからの継承は機能しません。

4

3 に答える 3

1

ランタイム型サービスは、abap のリフレクションに相当します。それらを使用すると、ほぼすべてのオブジェクトをスキャンでき、ほとんどの場合、実行時に変更することさえできます。私の知る限り、属性の可視性は問題ではありません。しかし、注意してください。そして、さまざまなクラスについて読んでください。多くのクラスがあり、それぞれが特別なタイプのデータ オブジェクト (構造体、オブジェクトなど) で動作するように指定されています。

http://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=42965

于 2013-10-04T09:45:04.390 に答える