[ABAP]返回对象的const引用又是完全只读的对象?

2020-08-30 20:54发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我来自C ++,在那里我们可以创建方法,这些方法返回所谓的 const引用。
这意味着调用者无法修改返回的值/对象(放下 const_cast和指针魔术消失了片刻)。 例如,如果方法向对象返回 const引用,则调用者无法在该返回的对象上调用方法,这将修改对象本身,但允许他调用不修改的方法 对象,例如 可以使用getter方法,也可以使用setter方法。

今天,我发现ABAP的属性为只读。 但是例如,如果我们有一个对象作为只读属性,您仍然可以调用将修改该对象的方法。

ABAP中是否有一种返回只读对象(对该对象的引用)的方法,该对象仅允许调用不会修改该对象的方法?

这里是一个简短的C ++示例,它尽可能地证明了我的意思,以及我想在ABAP中实现的内容: http://coliru.stacked-crooked.com/a/d36ccfee2c199004

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我来自C ++,在那里我们可以创建方法,这些方法返回所谓的 const引用。
这意味着调用者无法修改返回的值/对象(放下 const_cast和指针魔术消失了片刻)。 例如,如果方法向对象返回 const引用,则调用者无法在该返回的对象上调用方法,这将修改对象本身,但允许他调用不修改的方法 对象,例如 可以使用getter方法,也可以使用setter方法。

今天,我发现ABAP的属性为只读。 但是例如,如果我们有一个对象作为只读属性,您仍然可以调用将修改该对象的方法。

ABAP中是否有一种返回只读对象(对该对象的引用)的方法,该对象仅允许调用不会修改该对象的方法?

这里是一个简短的C ++示例,它尽可能地证明了我的意思,以及我想在ABAP中实现的内容: http://coliru.stacked-crooked.com/a/d36ccfee2c199004

付费偷看设置
发送
3条回答
吹牛啤
1楼-- · 2020-08-30 21:22

我担心。 感谢您的回答和建议的解决方法!

哎,真难
2楼-- · 2020-08-30 21:37

我将修改方法声明为private,仅将Setter和Getter声明为public。

从外部(来自第三类)的私有方法,您可以使用FRIENDS。

暮风yp
3楼-- · 2020-08-30 21:26

在我看来,它看起来像是单例模式...

一周热门 更多>