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