Pourquoi TreeSet renvoie ClassCastException

Dans le code ci-dessous je suis en train d'ajouter deux employés de l'objet

Set<Employee> s = new TreeSet<Employee>();
s.add(new Employee(1001));
s.add(new Employee(1002));

Mais le Résultat est java.lang.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)

Mais Si je change de.

Set<Employee> s = new TreeSet<Employee>();
s.add(new Employee(1001));

Ou

Set<Employee> s = new HashSet<Employee>();
s.add(new Employee(1001));
s.add(new Employee(1002));

Alors le résultat est le succès n'est pas une exception. Je ne fais pas toute la classe de la coulée de l'activité dans le code ci-dessus. S'il vous plaît aidez-moi à trouver la cause et de me suggérer une solution.

source d'informationauteur Rais Alam