TreeMapの作成中にNullPointerExceptionが発生します。
これが私のコードです:
public TreeMap<AccountGroupBean,List<AccountBean>> getAccountsAndGroups() throws SessionExpiredException {
TreeMap<AccountGroupBean,List<AccountBean>> map = new TreeMap<AccountGroupBean,List<AccountBean>>();
List<AccountGroupBean> groups = getAccountGroups();
for(AccountGroupBean group : groups) {
List<AccountBean> accounts = getAccountsByGroupId(group.getId());
System.out.println("PRINT"+ accounts.size());
map.put(group,accounts);
System.out.println("!" +map.get(group).size());
}
return map;
}
最初のprintlnは44を出力します。つまり、nullではありません。ただし、2番目のprintlnはnull例外を発生させます。
私が間違っていることについて何か考えはありますか?
解決
受け入れられた解決策で指摘されたように。問題は、compareToの実装にありました。
私はかつて持っていた:
public int compareTo(AccountGroupBean o) {
return (number > o.getNumber()) ? 1 : -1;
}
0リターンを追加すると、問題が解決しました。
public int compareTo(AccountGroupBean o) {
if(number == o.getNumber()) {
return 0;
}
return (number > o.getNumber()) ? 1 : -1;
}