私はこの機能があります。私にはそれはnullを意味し、どのアンドロイド - Collections.sort - java.lang.NullPointerExceptionが
if (o2.getAddress() == null) {
return 0;
}
:何らかの理由で
final ArrayList<Addressable> tempStoreList = new ArrayList<>();
tempStoreList.addAll(addressables);
Collections.sort(tempStoreList, new Comparator<Addressable>() {
@Override
public int compare(Addressable o1, Addressable o2) {
double distanceToO1 = 0;
double distanceToO2 = 0;
if (o1.getAddress() == null) {
return (o2.getAddress() == null) ? 0 : -1;
}
if (o2.getAddress() == null) {
return 0;
}
if (userLocation != null && o1.getAddress() != null && o2.getAddress() != null) {
distanceToO1 = GlobalUtilities.distance(userLocation, o1.getAddress().getLocation(), "K");
distanceToO2 = GlobalUtilities.distance(userLocation, o2.getAddress().getLocation(), "K");
}
if (distanceToO1 < distanceToO2) {
return -1;
} else if (distanceToO1 > distanceToO2) {
return 1;
} else {
return 0;
}
}
});
は、私が上でNPEを得続けます何とか配列に配置されました。誰もこれまでにこれまでに遭遇した?
にコードを変更 'addressables'はすでに' null'なのでが含まれています。そこにチェックしてください。 – Henry
ヌルが有効なリスト値です – Mike
シーケンスにヌル要素が含まれている理由を調べ、_that_問題を修正してください。シーケンスにnull要素が含まれていても例外的な例外でない場合は、 'Comparator'を' Comparator.nullsFirst'または 'Comparator.nullsLast'(Java 8以降を前提とします)でラップすることができます。 'Comparator'の実装はnull値をサポートする必要はないことに注意してください。そういう場合は、前述のラッパーのいずれかを使用する必要があります。 –