【问题标题】:The name of the PUBLIC class in the current CLASS POOL must be "..." not "..."当前 CLASS POOL 中的 PUBLIC 类的名称必须是“...”而不是“...”
【发布时间】:2019-09-23 20:00:49
【问题描述】:

我正在尝试通过单击事务se24 中的“本地定义/实现”在全局类 (Z_MY_GLOBAL_CLASS) 中创建一个本地类 (Z_MY_LOCAL_CLASS)。

之后,我将另一个类的源代码从其基于源代码的视图中复制到单击“本地定义”按钮后显示的文本区域中。

*"* use this source file for the definition and implementation of
*"* local helper classes, interface definitions and type
*"* declarations

class Z_MY_LOCAL_CLASS definition
  public
  final
  create public .

public section.

  class-methods SOME_STATIC_METHOD
    importing
      !IS_IS type Z_SOME_TYPE
    returning
      value(RS_RETURN) type Z_SOME_TYPE .
protected section.
private section.
ENDCLASS.



CLASS Z_MY_LOCAL_CLASS IMPLEMENTATION.


* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method Z_MY_LOCAL_CLASS=>SOME_STATIC_METHOD
* +-------------------------------------------------------------------------------------------------+
* | [--->] IS_IN                   TYPE        Z_SOME_TYPE
* | [<-()] RS_RETURN               TYPE        Z_SOME_TYPE
* +--------------------------------------------------------------------------------------</SIGNATURE>
  method SOME_STATIC_METHOD.
    "" some coding
  endmethod.
ENDCLASS.

尝试激活编码时,我收到以下消息:

当前 CLASS POOL 中的 PUBLIC 类的名称必须是“Z_MY_GLOBAL_CLASS”,而不是“Z_MY_LOCAL_CLASS”。

或德语:

Der Name der PUBLIC-Klasse im aktuellen CLASS-POOL muß "Z_MY_GLOBAL_CLASS" statt "Z_MY_LOCAL_CLASS" lauten。

什么意思?

【问题讨论】:

    标签: abap


    【解决方案1】:

    在 SAP/ABAP 中,错误消息通常不会描述实际错误。在本地类的定义中更改这些行

    class Z_MY_LOCAL_CLASS definition
      public
      final
      create public .
    

    到这里

    class Z_MY_LOCAL_CLASS definition final create public.
    

    它应该编译。所以问题是只允许全局类包含public。在将源代码从现有全局类复制/迁移到本地类时,您必须删除这些行。

    【讨论】:

    • 几乎正确。实际上是 public 限定符扰乱了编译器,因为它声明类通过数据字典可见。 create public 修正仅声明类可以用 new 实例化,并且在私有类中被很好地接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 2018-03-12
    • 2010-10-24
    • 2012-07-06
    相关资源
    最近更新 更多