问题描述
我正在开发一个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