异常 CX_SY_REF_IS_INITAL

Exception CX_SY_REF_IS_INITAL

我正在设置来自 class

的方法调用
DATA: r_info TYPE REF TO zcl_sv_job_offline_ctrl.


 CALL METHOD r_info->create
    EXPORTING
         is_data   = lr_test_record.

并收到以下错误:

CX_SY_REF_IS_INITAL

You are trying to access a component with a 'ZERO' object reference (points to nothing). Variable: "R_INFO".

我是不是漏掉了什么?

您错过了创建对象的机会。 所以你需要:

create object r_info.

r_info = new zcl_sv_job_offline_ctrl( ).

或者如果有 "factory method"(您的 'create' 方法指示的内容)

r_info = zcl_sv_job_offline_ctrl=>create( is_data = lr_test_record ).

您的异常告诉您引用 (r_info) 未与堆上的对象连接。因此,您需要执行上述步骤之一,然后它才会起作用。 (取决于您的 class )

抱歉,目前还没有代表发表评论... 我注意到您的 class 是一个 Z,所以我想知道您是否正在尝试创建一个单例 class。在这种情况下。您的 'Create' 应该是静态的。您的私有构造函数和私有属性中的实例。
从其他评论来看,我同意,您的问题缺少一些关键细节,无法提供准确的答案。
如果 IO_DISPATCHER 是构造函数的一部分并且您无法传递值,则需要更深入地研究 class 的用途。看看你能不能给它想要的。尝试 'where used' 并检查 class 的其他用法。您可能会发现自己看错了 class,或者至少是从错误的方向接近。
如果 create 是 class 上的某种方法并且它不是静态的,那么在创建 class.
[=14 的实例之前,您将永远无法使用它=] 另一个想到的想法是,你可能在正确的地方,只是做了错误的事情。检查您的全局变量以查看是否已经存在 class 的实例并且您正在尝试通过声明为数据而不是使用全局实例来访问某些内容? 所有猜测都没有更多细节。

谢谢大家

解决方案只是实例化父 classes(正确),使我能够实例化有问题的 class。