List<User> learnersList=null;
List<User> instructorsList=null;
List<User> contentCreatorsList=null;
try {
learnersList=getManagerFactory().getLearningMgmtManager().getAllLearners();
SortedSet<User> userList =new TreeSet<User> (learnersList);
} catch (ElearningException e) {
log.error("Error in gotoinboxpage method in messagemgmt action");
}
在上面的代码中,我想要使用唯一值对自然排序中的'userList'进行排序。我打算使用TreeSet。但我没有按照有条不紊的方式获得列表。无法弄清楚这里出了什么问题。而是抛出以下异常。有什么帮助吗?
抛出未处理的异常:类java.lang.ClassCastException 用户无法转换为java.lang.Comparable
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at java.util.AbstractCollection.addAll(AbstractCollection.java:334)
at java.util.TreeSet.addAll(TreeSet.java:312)
at java.util.TreeSet.<init>(TreeSet.java:160)
答案 0 :(得分:1)
在将对象放入SortedSet
之前,我认为您需要实现Comparable
接口,并覆盖compareTo
函数。否则,Collection无法知道您要如何排序对象。默认情况下,集合只是根据元素的自然顺序对其进行排序。