TreeSet に 2 つの「従業員」オブジェクトを追加しようとしています。
Set<Employee> s = new TreeSet<Employee>();
s.add(new Employee(1001));
s.add(new Employee(1002));
しかし、それは ClassCastException をスローします:
Exception in thread "main" java.lang.ClassCastException: Employee cannot be cast to java.lang.Comparable
at java.util.TreeMap.put(TreeMap.java:542)
at java.util.TreeSet.add(TreeSet.java:238)
at MyClient.main(MyClient.java:9)
ただし、TreeSet にオブジェクトを 1 つだけ追加すると、次のようになります。
Set<Employee> s = new TreeSet<Employee>();
s.add(new Employee(1001));
または、代わりに HashSet を使用する場合:
Set<Employee> s = new HashSet<Employee>();
s.add(new Employee(1001));
s.add(new Employee(1002));
そしたら成功です。例外が発生する理由と修正方法を教えてください。