如何在类之外访问最终类的保护属性。

2020-08-17 19:30发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好, 我有一个需要访问SAP...

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

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


你好,

我有一个需要访问SAP标准类的受保护属性的要求。 我可以获取Object的实例,但是当我尝试访问protected属性时,会导致编译错误。

由于实例对象的类是最终类,所以我也不能继承它。

Class- CL_HTTP_SERVER_NET

属性-M_SECURITY_SESSION_COOKIE

"不允许访问受保护的属性" M_SECURITY_SESSION_COOKIE""

在这方面,我真的很乐意提供帮助。

谢谢

Ranjan。

4条回答
Doze时光
2020-08-17 20:02 .采纳回答

通过实现一个也继承自超类CL_HTTP_SERVER的类来尝试以下操作,您的类CL_HTTP_SERVER_NET也将超类作为朋友,以便从CL_HTT_SERVER_NET的超类访问受保护的属性。

  1. 创建一个继承自CL_HTTP_SERVER的z类(作为DDIC或在报表中)
  2. 声明一个类方法(或根据需要,选择实例方法),例如 GET_SECURITY_SESSION_COOKIE,它导入类型为CL_HTTP_SERVER_NET的对象并返回STRING
  3. 该方法的实现,以从已导入的类型为CL_HTTP_SERVER_NET的对象(具有相同的超类)访问并返回属性M_SECURITY_SESSION_COOKIE。
  4. < li>在常规程序中,使用(class-)方法,例如 您新类(对象)的GET_SECURITY_SESSION_COOKIE传递CL_HTTP_SERVER_NET对象,以便从超类CL_HTTP_SERVER
 REPORT ztest_http_server_cookie访问其"受保护"属性M_SECURITY_SESSION_COOKIE。

 "定义从CL_HTTP_SERVER继承的Z类,以便从超类CL_HTTP_SERVER访问受保护的属性
 从cl_http_server继承的类locl_http_server。
   公共部分。
     类别方法get_security_session_cookie导入http_server_net类型参考cl_http_server_net
                                               返回值(cookie)TYPE字符串。
 ENDCLASS。

 类别locl_http_server IMPLEMENTATION。
   方法get_security_session_cookie。
     cookie = http_server_net-> m_security_session_cookie。
   终结法。
 ENDCLASS。


 选择开始。

   数据lo_http_server_net类型参考cl_http_server_net。
   创建对象lo_http_server_net类型cl_http_server_net。
   "进行编码
   " ...


   "获取您受保护的Cookie
   DATA(security_session_cookie)= locl_http_server => get_security_session_cookie(lo_http_server_net)。

 

一周热门 更多>