2
我们刚收到一个崩溃报告,我真的不明白,我甚至不知道这是一个好问题......但我什么也想不起。宏达M8(6.0.1):TreeSet <Long>。包含(长)抛出类抛出异常:“不能抛出双倍到长”
我有以下代码:
public class LeisureEventSelectedCategories {
private Set<Long> ids = new TreeSet<>();
public boolean contains(Long id) {
if (id == null) {
return false;
}
return ids.contains(id);
}
凡行return ids.contains(id)
崩溃,并显示以下异常:
java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Long
at java.lang.Long.compareTo(Long.java)
at java.util.TreeMap.find(TreeMap.java)
at java.util.TreeMap.findByObject(TreeMap.java)
at java.util.TreeMap.containsKey(TreeMap.java)
at java.util.TreeSet.contains(TreeSet.java)
at com.acme.b.a.d.a(LeisureEventSelectedCategories.java:50)
我收到这里的Long
是从Map<String, Long>
。
leisureEventSelectedCategories.contains(eventCategoryNameToEventId.get(categoryName)) || leisurePlaceSelectedCategories.contains(placeCategoryNameToPlaceId.get(categoryName)),
凡
Map<String, Long> placeCategoryNameToPlaceId = new LinkedHashMap<>();
Map<String, Long> eventCategoryNameToEventId = new LinkedHashMap<>();
除了用HashSet
更换TreeSet
和使用Collections.sort()
我需要它,这可能是造成这一点,我应该如何避免它的未来?
编辑:值的leisureEventSelectedCategories
图像选择的是来自服务器的所有项目后:值
图像中eventCategoryNameToPlaceId
不可能与该代码...显示我们,而不是如何调用***包含***方法 –
我确实显示了如何调用'contains'方法...我知道它不应该是可能的,但我得到了一个崩溃报告,这个例外>>我要用'LinkedHashSet'代替'TreeSet '作为即时错误修复 –
EpicPandaForce
顺便说一下,我无法在三星设备上产生这个崩溃,我的Nexus 5X。 – EpicPandaForce