简体   繁体   English

线程“主”java.lang.ClassCastException 中的异常:setcollection.Enseignant 无法转换为 java.lang.Comparable

[英]Exception in thread “main” java.lang.ClassCastException: setcollection.Enseignant cannot be cast to java.lang.Comparable

Exception in thread "main" java.lang.ClassCastException: setcollection.Enseignant cannot be cast to java.lang.Comparable线程“主”java.lang.ClassCastException 中的异常:setcollection.Enseignant 无法转换为 java.lang.Comparable

public class Test {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
        Enseignant e=new Enseignant();
        Enseignant e1=new Enseignant(1,"bargaoui","haythem");
        Enseignant e2=new Enseignant(12,"islem","ben ahmed");
        System.out.println(e1.toString());
        System.out.println(e2.toString());
        System.out.println(e1.equals(e2));
        TreeSet<Enseignant> treeset = new TreeSet<Enseignant>(); 
        Enseignant E1=new Enseignant(1,"mohamed","ben brahim");
        Enseignant E2=new Enseignant(2,"imed","rouabi");
        Enseignant E3=new Enseignant(3,"salim","ali");
        Enseignant E4=new Enseignant(4,"zayneb","sassi");
        Enseignant E5=new Enseignant(5,"khalid","louati");
        Enseignant E6=new Enseignant(6,"hatem"," himadi");


        treeset.add(E1);
        treeset.add(E2);
        treeset.add(E3);
        treeset.add(E4);
        treeset.add(E5);
        treeset.add(E6);
        System.out.println(treeset.contains(E4));
        System.out.println(treeset.contains(E1.getId()));
        System.out.println(treeset.remove(E6));
        Iterator iterator = treeset.iterator();

        // afficher tous les éléments de TreeSet
        System.out.println("éléments de TreeSet");     
        while (iterator.hasNext()){
        System.out.println(iterator.next());
        }
    }
}

Exception in thread "main" java.lang.ClassCastException:线程“主”java.lang.ClassCastException 中的异常:

Since you are using a TreeSet, some comparisons will be done and a Comparator<> is needed.由于您使用的是 TreeSet,因此需要进行一些比较并且需要 Comparator<>。

There are two things that you can do.您可以做两件事。

  1. Implement Comparable<> in Enseignant在 Enseignant 中实现 Comparable<>
public class Enseignant implements Comparable<Enseignant> {
...
  public int compareTo(Enseignant other) {
    // Compare here
    return 0;
  }
...
}
  1. Add a Comparator on creation of TreeSet在创建 TreeSet 时添加一个比较器
TreeSet<Enseignant> treeset = new TreeSet<>(new Comparator<Enseignant>(){
  public int compare(Enseignant e1, Enseignant e2) {
    // Compare here.
    return 0;
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 线程“主”java.lang.ClassCastException 中的异常:proj.Car 无法转换为 java.lang.Comparable - Exception in thread "main" java.lang.ClassCastException: proj.Car cannot be cast to java.lang.Comparable 错误:“线程中的异常”main“java.lang.ClassCastException:manycard.Main$Card 无法转换为 java.lang.Comparable” - Error: “Exception in thread ”main“ java.lang.ClassCastException: manycard.Main$Card cannot be cast to java.lang.Comparable” 线程“主”java.lang.ClassCastException 中的异常:javafx.util.Pair 无法转换为 java.lang.Comparable - Exception in thread “main” java.lang.ClassCastException: javafx.util.Pair cannot be cast to java.lang.Comparable java.lang.ClassCastException: 不能转换为 java.lang.Comparable - java.lang.ClassCastException: cannot be cast to java.lang.Comparable java.lang.ClassCastException:尝试排序List时,java.util.LinkedHashMap无法转换为java.lang.Comparable异常 - java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.lang.Comparable exception when trying sort a List java.lang.ClassCastException:java.util.HashMap无法强制转换为java.lang.Comparable - java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.Comparable Java 运行时错误:java.lang.ClassCastException:main.Scrapper$aktie 无法转换为 java.lang.Comparable - Java runtime error: java.lang.ClassCastException: main.Scrapper$aktie cannot be cast to java.lang.Comparable 列表到TreeSet的转换产生:“ java.lang.ClassCastException:MyClass无法转换为java.lang.Comparable” - List to TreeSet conversion produces: “java.lang.ClassCastException: MyClass cannot be cast to java.lang.Comparable” MyClass无法强制转换为java.lang.Comparable:java.lang.ClassCastException - MyClass cannot be cast to java.lang.Comparable: java.lang.ClassCastException &#39;java.lang.ClassCastException:资源无法强制转换为java.lang.Comparable&#39; - 'java.lang.ClassCastException: Resource cannot be cast to java.lang.Comparable'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM