ABAP Eclipse中类构造函数参数不显示且报错问题
ABAP本地类构造函数参数提示缺失与实例化报错问题
问题现象
- 定义了包含两个必填IMPORTING参数的本地类构造函数,在Eclipse中实例化对象时,输入
new #( i_carrier_id='q' )后按Ctrl+Space无法触发第二个参数的代码提示,按Ctrl+1也无任何修复建议。 - 手动省略第二个参数执行时,触发报错:
The parameter name can be omitted only if the method has only one non-optional IMPORTING parameter or one optional IMPORTING parameter identified by "PREFERRED PARAMETER".
中文翻译:仅当方法只有一个非可选IMPORTING参数,或存在一个通过"PREFERRED PARAMETER"标记的可选IMPORTING参数时,才可省略参数名。
相关代码
本地类定义与实现
CLASS lcl_connection DEFINITION. PUBLIC SECTION. DATA carrier_id TYPE str. DATA connection_id TYPE str. CLASS-DATA conn_counter TYPE i. METHODS: constructor IMPORTING i_carrier_id TYPE str i_connection_id TYPE str. ENDCLASS. CLASS lcl_connection IMPLEMENTATION. METHOD constructor. me->carrier_id = i_carrier_id. me->connection_id = i_connection_id. ENDMETHOD. ENDCLASS.
实例化代码
CLASS zcl_01_local_class DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES if_oo_adt_classrun . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_01_local_class IMPLEMENTATION. METHOD if_oo_adt_classrun~main. DATA connection TYPE REF TO lcl_connection. out->write( 'hello'). connection = new #( i_carrier_id='q' ). ENDMETHOD. ENDCLASS.
环境信息
- Eclipse IDE for Java Developers 2024-06(4.32.0)
- Windows 10 x86_64,Java 21.0.1
- ABAP:最新版本
处理方案
- 修正实例化代码:由于构造函数的两个参数均为必填非可选参数,实例化时必须传递所有参数,不能省略。正确写法如下:
connection = new #( i_carrier_id='q' i_connection_id='xxx' ).
- 参数提示问题:确保Eclipse的ABAP ADT插件为最新版本,同时检查项目的ABAP语法版本配置与当前ABAP环境一致。
内容的提问来源于stack exchange,提问作者Omid Erfanmanesh
相关产品推荐
相关产品推荐

