gpt4 book ai didi

java - 填充 TreeMap 会抛出 NullPointerException

转载 作者:行者123 更新时间:2023-11-29 06:18:33 25 4
gpt4 key购买 nike

我在创建 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。也就是说它不为空。但是,第二个 println 引发了 null 异常。

知道我做错了什么吗?

解决方案

AS 指出了公认的解决方案。问题出在我对 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;
}

最佳答案

我看起来像 AccountGroupBean 没有以正确的方式实现 Comparable,尝试 println group.compareTo(group) 来检查是否它打印 0

关于java - 填充 TreeMap 会抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4123426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com