我尝试部署更新的 Apex 类。 但我总是收到这个错误:
OCRServiceHandlerTest testProcessOCRTickets System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.OCRServiceHandler.getAttributesInfo: line 204, column 1 Class.OCRServiceHandler.parseResponse: line 179, column 1 Class.OCRServiceHandler.processFileData: line 142, column 1 Class.OCRServiceHandler.processOCRTickets: line 66, column 1
还有这个:
OCRServiceHandlerTest testProcessOcrTicketCtrl System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.OCRServiceHandler.getAttributesInfo: line 204, column 1 Class.OCRServiceHandler.parseResponse: line 179, column 1 Class.OCRServiceHandler.processFileData: line 142, column 1 Class.OCRServiceHandler.processOCRTickets: line 66, column 1
我必须承认,这是我第一次在APEX中开发东西。
第 204 行看起来像这样:
String authorityEmail = getCompleteJoinedContent(page?.prediction?.authority_email.values);
在 API 和对象中,该字段是电子邮件类型字段。 我需要将第 204 行更改为电子邮件或类似的内容吗?
有人可以帮我吗?
谢谢。
您看到的错误消息,
System.NullPointerException: Attempt to de-reference a null object
,是 Apex(以及其他面向对象语言)中的常见错误消息。这意味着您正在尝试访问尚未初始化的对象上的属性或方法(即,它是null
)。
从您提供的堆栈跟踪来看,错误似乎源自第 204 行的
getAttributesInfo
方法。有问题的行是:
String authorityEmail = getCompleteJoinedContent(page?.prediction?.authority_email.values);
在 Apex 中使用安全导航运算符 (
?.
) 是为了防止 null 取消引用异常。但是,该错误表明该链中的某些内容为空,并且您正在尝试访问其上的属性或方法。
以下是可能为 null 的内容的细分:
page
page.prediction
page.prediction.authority_email
如果其中任何一个为 null,则尝试访问
values
上的 authority_email
属性将引发您所看到的异常。
要排查并解决问题:
检查对象初始化:确保在执行此行代码之前正确初始化
page
对象及其嵌套属性(prediction
和authority_email
)。
空检查:在访问嵌套属性之前添加空检查。例如:
String authorityEmail;
if(page != null && page.prediction != null && page.prediction.authority_email != null) {
authorityEmail = getCompleteJoinedContent(page.prediction.authority_email.values);
}
字段类型:该错误似乎与字段类型无关(
EMail-Type-Field
)。问题在于对象为空。但是,一旦解决了 null 问题,请确保 getCompleteJoinedContent
方法可以处理您传递给它的数据类型。
测试数据:如果在测试类执行期间发生此错误,请确保您的测试数据设置正确初始化
page
对象及其嵌套属性。
方法行为:检查
getCompleteJoinedContent
方法的行为。如果此方法不能正常处理空值,它也可能是错误的根源。
最后,由于您提到这是您第一次在 Apex 中进行开发,因此我建议您阅读 Salesforce 的 Apex 开发人员指南,尤其是有关错误处理和测试的部分。它提供了语言和最佳实践的全面概述。