You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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:最新版本

处理方案

  1. 修正实例化代码:由于构造函数的两个参数均为必填非可选参数,实例化时必须传递所有参数,不能省略。正确写法如下:
connection = new #( i_carrier_id='q' i_connection_id='xxx' ). 
  1. 参数提示问题:确保Eclipse的ABAP ADT插件为最新版本,同时检查项目的ABAP语法版本配置与当前ABAP环境一致。

内容的提问来源于stack exchange,提问作者Omid Erfanmanesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:09:58