检查列表大小的NullPointer异常

此语句出现空指针异常。

accountList.getTrxnList()。getTrxns()。size()> 0

accountList是我从外部API调用获得的帐户列表。而且我确定会返回一个非null的accountList值。但是我不确定getTrxns()是否有任何值。因此在处理之前,我检查是否有Trxns,但这也会导致空指针异常。

这是我的模型课

public class accountList{

    private TrxnList trxnList;

    public static class TrxnList {

        private List<Trxn> trxns;

        public List<Trxn> getTrxns() {
            return trxns;
        }
    }
}

有人可以指出为什么这引发了nullpointer异常吗?我对此进行了一些研究,因此即使trxns List中没有任何项目,我也无法理解这种引发nullpointer异常的情况。

谢谢。

owihs 回答:检查列表大小的NullPointer异常

您的列表未实例化,仅被声明。您需要输入:

private List<Trxn> trxns = new ArrayList<>(); 
,

您也可以抓住NullPointerException,但我也同意另一位评论者的观点,认为该异常是通过实例化List来解决的。

public class AccountList{

    private TrxnList trxnList;

    public static class TrxnList {

        private List<Trxn> trxns;

        public List<Trxn> getTrxns() {
            try
            {
                return trxns;
            }
            catch(NullPointerException e)
            {
                // handle the list==null case here
                // maybe instantiate it here if it's not:
                trxns = new ArrayList<>();
            }
        }
    }
}
,
public class AccountList{

    private TrxnList trxnList;

    public static class TrxnList {

        private List<Trxn> trxns;

        public List<Trxn> getTrxns() {
            return Optional.ofNullable(trxns).orElse(new ArrayList())
        }
    }
}
本文链接:https://www.f2er.com/3161119.html

大家都在问