微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何确保代码不引发空指针异常未在请求正文中定义属性

如何解决如何确保代码不引发空指针异常未在请求正文中定义属性

我正在开发一个Spring Boot API,该API可以通过调用名为gamesServiceAPI的服务来提取用户Steam游戏统计信息,Battle Net游戏统计信息以及其他各种游戏统计信息

以下是提取用户游戏统计数据的服务方法的逻辑。

public void preload(User user) throws IOException,SteamApiException {
    if(!user.getBattlenet().equals(""))
    {
        loader.loadCallOfDuty(user);
    }
    if(!user.getpubgPlayerName().equals("") && user.getpubgPlayerName() != null)
    {
       loader.loadpubg(user);
    }
    if(!user.getRunescapedisplayName().equals("") && user.getRunescapedisplayName() != null) {
        loader.loadRunescape(user);
    }

    if(!user.getSteamId().equals("") && user.getSteamId() != null)
    {
       if(APIFetcher.resolveCSGO(user.getSteamId()))
        {
            loader.loadCSGO(user);
        }
        if(APIFetcher.resolveTeamFortresstwo(user.getSteamId()))
        {
            loader.loadTeamFortress2(user);
        }
        //Else do nothing,since they dont play the games we cover.
    }

}

现在,并不是所有用户都可以玩我们服务中的所有游戏,有些人可能会玩符文,而其他游戏则不会。

现在,当我传递来自POSTMAN的请求时,该请求到达终点并调用方法

{
"username": "Steven R","password": "hi12345","steamId": "76561198882328170","pubgPlayerName": "YYpD_33510888","runescapedisplayName": "DrumGun"
}

我尚未指定我的Battle Net ID,由于用户未在Battle net平台上玩游戏,因此if语句中会引发空指针异常,该如何缓解呢?

解决方法

人们通常会颠倒equals-检查,以将检查的恒定部分用作第一部分,在该部分上调用可能非常恒定的部分以避免上述可能的{{1 } s,类似于

NullPointerException

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。