gpt4 book ai didi

java - 改造安卓: Method invocation 'getSuccess' may produce 'java.lang.NullPointerException'

转载 作者:行者123 更新时间:2023-12-02 02:37:31 24 4
gpt4 key购买 nike

我正在使用 Retroft 和 GSON 来解析响应。

我的onResponse代码如下

@Override
public void onResponse(@NonNull Call<ResultList> call, @NonNull Response<ResultList> response) {
if (response.isSuccessful()) {
if (response.body() != null && response.body().getSuccess() == 1) {
................

我正在检查 response.body() != null 以及 response.isSuccessful()。我仍然在 Android studio 的 response.body().getSuccess() 线上收到警告。

如何避免此警告?

我正在使用retrofit:2.3.0和gson:2.8.1。我已经尝试过这个问题的解决方案(Retrofit Method invocation may produce 'java.lang.NullPointerException')。但它不起作用

最佳答案

方法Response.body()是用@Nullable注释声明的,这意味着它的返回值可能为null。如果您想避免此警告,则必须在调用方法之前检查返回值是否不为 null。

您的问题包括以下代码:

if (response.body() != null && response.body().getSuccess() == 1)

听起来您希望这会删除警告,但事实并非如此。这是因为 linter 无法知道第二次调用 body() 将返回与第一次调用相同的值。相反,这样写:

ResultList body = response.body();
if (body != null && body.getSuccess() == 1) {
...
}

关于java - 改造安卓: Method invocation 'getSuccess' may produce 'java.lang.NullPointerException' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com