Я получаю исключение NullPointerException при создании TreeMap.
Вот мой код:
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. То есть это не равно нулю.Тем не менее, второй println вызывает нулевое исключение.
Есть идеи, что я делаю не так?
Решение
Как указано в принятом решении.Проблема была в моей реализации сравнения.
Раньше у меня было:
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;
}