如何迭代地图以避免NPE?

用户名

我正在基于传递给以下方法的主机名生成URL。

UserId并且ClientId会始终通过,但DataMap有时会为空。这里的DataMap是String和的String

NullPointerException如果的keys.getDataMap()为空,则抛出下面的代码

private String generateURL(final String hostIPAdress) {
    StringBuffer url = new StringBuffer();
    url.append("http://" + hostIPAdress + ":8080/user?userid=" + keys.getUserId() + "&client_id="
        + keys.getClientId());

    // this line throw NPE
    Set<Entry<String, String>> params = keys.getDataMap().entrySet();

    for (Entry<String, String> e : params) {
        url.append("&" + e.getKey());
        url.append("=" + e.getValue());
    }

    return url.toString();
}

如果只有,UserId并且ClientId被传递且DataMap为空,那么我将创建如下网址-

hostname:8080/user?userid=1234567&client_id=20

但在上述情况下,由于映射为空,因此将抛出NPE。我该如何解决这个问题?

如果正在传递地图数据,那么我将使用以下网址:

hostname:8080/user?userid=1234567&client_id=20&attribute=testing

attribute是地图的键,并且testing是该键的值。

亚当·斯泰尔马什奇克(Adam Stelmaszczyk)

只需检查您的地图是否为null

final Map dataMap = keys.getDataMap();
if (dataMap != null)
{
    Set<Entry<String, String>> params = dataMap.entrySet();
    // ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章