Java“空指针异常”-responseEntity.getBody().isNull()

Nag*_*ade 1 java resttemplate

    ResponseEntity<JsonNode> response = null;

    //Calling POST Method
    response=restTemplate.exchange(url, HttpMethod.POST,request,JsonNode.class);
    restResponse.setStatusCode(response.getStatusCode());
    restResponse.setHeaders(response.getHeaders());
    if(response.getBody().isNull())
    {
        //DO SOMETHING
    }
Run Code Online (Sandbox Code Playgroud)

问题:面临空指针异常

尽管我尝试使用 check 处理 Not Null 场景response.getBody().isNull(),但似乎此检查也会导致空指针异常。

我的假设:response.getBody()应该返回我尝试执行isNull()方法的 JsonNode 对象。我不确定这个调用如何再次导致空指针异常。在 Intellij 上,它显示getBody()方法有@Nullable可能出现空指针异常。

我在网上搜索了一些解决方案,说使用response.getBody()!=null会起作用。我很困惑。那么方法有什么用呢isNull()

And*_*lko 5

HttpEntity#hasBody我会在取回尸体之前使用。该实体很可能没有身体。它比response.getBody() != null支票更具表现力。

请不要假设isNull()on 一个对象会在 null 上检查该对象。this == null从根本上来说是错误的,而且从来都不是真的。

class Body {
    public boolean isNull() {
        return this == null; // never makes sense
    }
}
Run Code Online (Sandbox Code Playgroud)