Abap 加上;“公众”;全局对象类型中缺少类语句的

Abap 加上;“公众”;全局对象类型中缺少类语句的,abap,Abap,我正在尝试使用transactionse24中基于源代码的视图将本地ABAP类转换为“普通”//全局类。源代码是: CLASS Z_MY_CLASS definition. PUBLIC SECTION. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS Z_MY_CLASS IMPLEMENTATION. ENDCLASS. 尝试激活时出现错误消息: 全局对象类型“Z_MY_CLASS”中缺少CLASS语句的“PUBLIC”

我正在尝试使用transaction
se24
中基于源代码的视图将本地ABAP类转换为“普通”//全局类。源代码是:

CLASS Z_MY_CLASS definition.
  PUBLIC SECTION.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.

CLASS Z_MY_CLASS IMPLEMENTATION.
ENDCLASS.
尝试激活时出现错误消息:

全局对象类型“Z_MY_CLASS”中缺少CLASS语句的“PUBLIC”添加项

这是一个典型的全球目标,它是一个“公共”的集体


这是什么问题?

这是的反问题

以下是代码的工作版本:

CLASS Z_MY_CLASS definition.
  public
  "" inheriting from ... " optional
  "" final " optional
  create public.
  PUBLIC SECTION.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.

CLASS Z_MY_CLASS IMPLEMENTATION.
ENDCLASS.

单词
public final create public
解决了错误。

问题正是“类”中缺少“public”这条消息。您应该更好地解释为什么这个消息对您来说并不明显。我正在将源代码从一个本地类复制到一个非本地类,并且不知道其他关键字。我问了(并回答了)这个问题,这样通过谷歌搜索错误信息就可以快速找到一个最小的工作和非工作示例。虽然它看起来很明显,但它仍然有用。更详细地说:
PUBLIC
将告诉ABAP将此类发布为全球可用的开发对象,特别是通过数据字典。其他修正案是可选的
FINAL
将阻止其他人继承您的类<代码>公共创建将允许所有使用者使用
数据(实例)=NEW()实例化类