由于被调用方法的 return 值,Sonar 问题 - 可能的空指针取消引用。 Return 方法中的值在未进行空检查的情况下被取消引用
Sonar Issue-Possible null pointer dereference due to return value of called method. Return value from a method is dereferenced without a null check
我有一个 void 方法,它是用父方法的字符串参数调用的。
private void sendMail(String msg) {
SimpleMailMessage message = null;
try {
SimpleMailMessage templateMessage = mailSender.getSimpleMailMessage();
if(templateMessage != null ) {
message = new SimpleMailMessage(templateMessage);
if(message != null) {
if(templateMessage.getSubject() != null) {
message.setSubject(String.format(templateMessage.getSubject(), System.getProperty("env")));
}
if(templateMessage.getText() != null) {
message.setText(String.format(templateMessage.getText(), msg)); // This line of code is throwing Sonar issue
}
}
}
}
}
String text = templateMessage.getText();
if (text != null) {
message.setText(String.format(text, msg));
}
getText
似乎不仅仅是一个简单的getter。第二次显然可能 return null.
我有一个 void 方法,它是用父方法的字符串参数调用的。
private void sendMail(String msg) {
SimpleMailMessage message = null;
try {
SimpleMailMessage templateMessage = mailSender.getSimpleMailMessage();
if(templateMessage != null ) {
message = new SimpleMailMessage(templateMessage);
if(message != null) {
if(templateMessage.getSubject() != null) {
message.setSubject(String.format(templateMessage.getSubject(), System.getProperty("env")));
}
if(templateMessage.getText() != null) {
message.setText(String.format(templateMessage.getText(), msg)); // This line of code is throwing Sonar issue
}
}
}
}
}
String text = templateMessage.getText();
if (text != null) {
message.setText(String.format(text, msg));
}
getText
似乎不仅仅是一个简单的getter。第二次显然可能 return null.