Java 对自定义对象列表排序时出现NullPointerException

Java 对自定义对象列表排序时出现NullPointerException,java,android,arraylist,Java,Android,Arraylist,我想根据字段对自定义列表进行排序。我的列表有大约125条记录,因为它是静态的 Collections.sort(receivedSOSModelArrayList, new Comparator<ReceivedSOSModel>() { @Override public int compare(ReceivedSOSModel receivedSOSModel, ReceivedSOSModel t1) { return receivedSOSMod

我想根据字段对自定义列表进行排序。我的列表有大约125条记录,因为它是静态的

Collections.sort(receivedSOSModelArrayList, new Comparator<ReceivedSOSModel>() {
    @Override
    public int compare(ReceivedSOSModel receivedSOSModel, ReceivedSOSModel t1) {
        return receivedSOSModel.getReceivedSOSFrom().compareTo(t1.getReceivedSOSFrom());
    }
});

在比较之前添加空检查:

Collections.sort(receivedSOSModelArrayList, new Comparator<ReceivedSOSModel>() {
    @Override
    public int compare(ReceivedSOSModel receivedSOSModel, ReceivedSOSModel t1) {
        if (receivedSOSModel == null || receivedSOSModel.getReceivedSOSFrom() == null) {
            Log.v("first", "NULL");
            return -1;  //null values will be displayed at bottom in sorted list
        }

        if (t1 == null || t1.getReceivedSOSFrom() == null ) {
            Log.v("second", "NULL");
            return 1;  //null values will be displayed at bottom in sorted list
        }

        return receivedSOSModel.getReceivedSOSFrom().compareTo(t1.getReceivedSOSFrom());
    }
});
Collections.sort(receivedSOSModelArrayList,newcomparator(){
@凌驾
公共int比较(ReceivedSOSModel ReceivedSOSModel,ReceivedSOSModel t1){
if(receivedSOSModel==null | | receivedSOSModel.getReceivedSOSFrom()==null){
Log.v(“第一个”、“空”);
return-1;//空值将显示在排序列表的底部
}
if(t1==null | | t1.getReceivedSOSFrom()==null){
Log.v(“第二个”、“空”);
返回1;//空值将显示在排序列表的底部
}
返回receivedSOSModel.getReceivedSOSFrom().compareTo(t1.getReceivedSOSFrom());
}
});

确保列表中的所有元素都不是空的是,它们不是空的。选中我的错误谢谢列表元素可能不为null,但
元素。GetReceivedSoFrom()
至少用于其中一个元素。是的,它们不为null。检查我的错误谢谢
Collections.sort(receivedSOSModelArrayList, new Comparator<ReceivedSOSModel>() {
    @Override
    public int compare(ReceivedSOSModel receivedSOSModel, ReceivedSOSModel t1) {
        if (receivedSOSModel == null || receivedSOSModel.getReceivedSOSFrom() == null) {
            Log.v("first", "NULL");
            return -1;  //null values will be displayed at bottom in sorted list
        }

        if (t1 == null || t1.getReceivedSOSFrom() == null ) {
            Log.v("second", "NULL");
            return 1;  //null values will be displayed at bottom in sorted list
        }

        return receivedSOSModel.getReceivedSOSFrom().compareTo(t1.getReceivedSOSFrom());
    }
});