java 輸出變數引數名_根據變數值取得變數的引數名
阿新 • • 發佈:2021-01-31
技術標籤:java 輸出變數引數名
寫作於2017年2月17日。
Java和ABAP只能根據字串通過反射獲得變數的metadata,像標題描述的這個需求聽起來有點怪。需求是Mervin實現Range search時需要根據range table的內容來動態拼OPEN SQL,OPEN SQL裡的statement必須是range table的變數名。
AG9:
這四個引數模擬search支援的attribute,如果runtime時候哪個引數傳了值進去,就把哪個引數名拼到SQL去:
具體實現:
method BUILD_SQL.* Jerry: move this logic to constructor!! data: lt_arg TYPE TABLE OF SEOSUBCODF. SELECT * INTO TABLE lt_arg FROM SEOSUBCODF WHERE clsname = 'ZCL_SQL' and cmpname = 'BUILD_SQL'.* Jerry: end. DATA: lv_result TYPE string value 'select from XXX'. LOOP AT lt_arg ASSIGNING FIELD-SYMBOL(). ASSIGN (-sconame) TO FIELD-SYMBOL(). IF sy-subrc = 0 and IS NOT INITIAL. lv_result = | { lv_result } WHERE { -sconame } = { } |. ENDIF. ENDLOOP. WRITE: / lv_result. endmethod.
測試:
輸出:
引數名已經動態拼到SQL裡去了: