1
    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)
4

1 回答 1

1

在你把你的对象放入之前SortedSet,我认为你需要实现Comparable接口,并覆盖compareTo函数。否则,集合无法知道您要如何对对象进行排序。默认情况下,集合只是根据元素的自然顺序对其进行排序。

于 2012-11-30T05:10:23.510 回答