Hilfe!!! java.lang.ClassCastException

CharlesD

Mitglied
Hallo,
in meinem kleinen Programm kommt immer die Fehlermeldung java.lang.ClassCastException . Mein Code sollte stimmen, ich hab aber absolut keinen Schimmern wieso diese Exception kommt. Kann das an Eclipse liegen?
Wäre super wenn ihr mir helfen könntet.

Hier Mein Code:
Java:
import java.util.*;


public class artest {
	public static void main (String [] args){
		
		System.out.println("Bitte geben Sie eine Zahl ein");
		Scanner sc = new Scanner (System.in);
		int i = 0;
		i = sc.nextInt();
		Schüler a = new Schüler ( i, "Manfred");
		
		
		Collection<Schüler> treeSet = new TreeSet<Schüler>();
		treeSet.add(a);
		for (Schüler schuel : treeSet) System.out.println(schuel.toString());

	}
}


und hier die Fehlermeldung:
Java:
Exception in thread "main" java.lang.ClassCastException: Schüler cannot be cast to java.lang.Comparable
	at java.util.TreeMap.compare(Unknown Source)
	at java.util.TreeMap.put(Unknown Source)
	at java.util.TreeSet.add(Unknown Source)
	at artest.main(artest.java:15)


danke schonmal im Vorraus.
 
Nö, das liegt daran dass du TreeSet verwendest. Diese Collection speichert ihre Daten sortiert. Damit sie weiß, wie sie sie sortieren soll, müssen die Objekte entweder Comparable implementieren, oder du musst beim Erstellen des TreeSet's eine Comparator festlegen. Wenn keins von beidem der Fall ist, fliegt beim hinzfügen ne diese Exception.
 

Zurück
Oben