Android异常 NullPointerException: Attempt to invoke virtual method int java.lang.Integer.intValue()

异常详情

05-23 16:15:41.672  4206  6875 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
05-23 16:15:41.672  4206  6875 E AndroidRuntime:    at org.libjingle.LibjingleWrapper$MessageEventHandler.handleMessage(LibjingleWrapper.java:310)
05-23 16:15:41.672  4206  6875 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:102)
05-23 16:15:41.672  4206  6875 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:142)
05-23 16:15:41.672  4206  6875 E AndroidRuntime:    at android.os.HandlerThread.run(HandlerThread.java:61)

相关代码

private static Map<String, Integer> downloadingFiles = null;
...
downloadingFiles.put(fileInfo.strFileName, msgId);
...
int msgid = downloadingFiles.get(serverFileName);

问题原因:
@1. 当serverFileName为null时,Map.get(Object key)会产生异常
java.lang.NullPointerException if the specified key is null and this map does not permit null keys (optional)
@2. 当downloadingFiles.get(serverFileName)为null时,会产生NullPointerException

解决方法:

将如下代码
int msgid = downloadingFiles.get(serverFileName);
更改为:
public int getId(String serverFileName) {
        if (null != serverFileName && downloadingFiles.containsKey(serverFileName)) {
            return downloadingFiles.get(serverFileName);
        }
        return 0;
    }

不要直接调用Map.get(Object key)方法,应该先判断Map.containsKey(String key)是否包含该字段,然后再从中取。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值