如何访问公共类型的对象

tom*_*uyt 5 sap abap

我有一个名为ZCL_RM_SPREADSHEETML的类.

它在"类型"选项卡中有一个名为TY_STYLE的类型,其可见性为"公共",并使用直接类型条目定义.

当我尝试在调用者代码中声明以下内容时:

DATA : wa_blue_style TYPE zcl_rm_spreadsheetml-ty_style.
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

The type "ZCL_RM_SPREADSHEETML" has no structure and therefore no
component called "TY_STYLE". .
Run Code Online (Sandbox Code Playgroud)

这有点道理我猜是因为ZCL_RM_SPREADSHEETML是一个类,双击TY_STYLE也绝对没有.

然后我用tilda尝试了以下内容:

DATA : wa_blue_style TYPE zcl_rm_spreadsheetml~ty_style.
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

Type "ZCL_RM_SPREADSHEETML~TY_STYLE" is unknown
Run Code Online (Sandbox Code Playgroud)

双击TY_STYLE会带我到TY_STYLE的定义,所以我必须关闭.我最后一次遇到类似的问题是因为我正在访问私有方法,但我将类型明确标记为Public.

我做错了什么想法?

编辑

我也试过评论

DATA : wa_blue_style TYPE ref to zcl_rm_spreadsheetml->ty_style. "and
DATA : wa_blue_style TYPE zcl_rm_spreadsheetml->ty_style. 
Run Code Online (Sandbox Code Playgroud)

这使

Field "ZCL_RM_SPREADSHEETML" is unknown. It is neither in one of the
specified tables nor defined by a "DATA" statement.
Run Code Online (Sandbox Code Playgroud)

这让我想到了尝试这种'阶级'的方式,

DATA : wa_blue_style TYPE zcl_rm_spreadsheetml=>ty_style.
Run Code Online (Sandbox Code Playgroud)

这有效

vwe*_*ert 7

您必须使用适当的组件选择器:

定义的字符,可用于处理上层单元的组件.有一个结构组件selector(-),一个类组件选择器(=>),一个接口组件选择器(~)和一个对象组件选择器(->).

在这种情况下,您正在访问类的类型(组件),因此您必须使用=>.