当前位置: 首页 > 知识库问答 >
问题:

改造Android:方法调用'Get Success'可能会产生'java.lang.NullPointerException'

宣煜
2023-03-14
@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()!=nullresponse.issuccessful()。尽管如此,我还是在Android studio的response.body().getsuccess()上收到了警告。

如何避免这种警告?

我使用的是改型:2.3.0和GSON:2.8.1。我已经尝试了这个问题的解决方案(refitfit方法调用可能会产生'java.lang.NullPointerException')。但它不起作用

共有1个答案

楚丰羽
2023-03-14

方法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) {
    ...
}
 类似资料:
  • 我正在使用改型2从我的API获得响应,并将其值存储在我的常量中,如下所示 它在下面这三个方面给了我警告 我很困惑,无法解决此警告。让我知道如果有人能帮我走出来。

  • 我有个密码: 我收到一个警告 我怎么才能修好它?

  • 问题内容: 我正在关注Android图书示例: 该项目可以在Android Studio中运行,但在线上带有黄色警告: 与: 根据我的理解,返回一个Object,然后(Integer)将其转换为int类型,以与满足。 您能告诉我该信息的确切含义吗,对于初学者来说,您的回答将是值得的。 我可以这样写上限吗?使用 () 将getIntent()。getExtras()。get()打包为一个整体,因为它

  • 我对“关闭”我的程序的abort术语的术语和矛盾感到有点困惑,从该函数的描述来看,它说析构函数和开放资源可能分别不被调用/关闭。那么,在调用abort()之后,我的程序是否仍在运行并且存在内存泄漏或者资源仍然打开?

  • 我是Android Studio的新手,我以为我做得很好,但是昨晚遇到了一个错误,尽管我尽了最大努力在谷歌上搜索,我似乎还是无法修复。我的一个活动上的一个按钮“可能会产生java.lang.NullPointerExctive”,只是每次按下它都会失败。这可能只是在错误的地方订购一行代码等简单的事情,但是我对Android Studio太陌生了,我真的不知道我哪里出错了。 这是XML 还有清单文件