ClassCastExpception in Projekt

Status
Nicht offen für weitere Antworten.
W

Wolfgke

Gast
Mein Problem ist folgendes (es handelt sich um eine Aufgabe für die Uni; ich habe sie mir nicht selber ausgedacht):

Gegeben ist folgendes Interfaces, welches ich auszugsweise (um den Arbeitsaufwand für euch, die ihr das doch freiwillig macht, zu senken) veröffentliche:

Sorter.java:
Code:
package tut_aufgabe05;

public interface Sorter {
	public int getLength();

	/**
	 * Vergleicht 2 elemente
	 * @param a Element a
	 * @param b Element b
	 * @return a.compareTo(b)
	 * privater Hinweis: a.compareTo(b) bezieht sich auf Element a und Element b und nicht die int-Werte
	 */
	public int compareElements(int a, int b);
	// Viele weitere Methoden kommen noch
	[...]
}

Außerdem noch das Interface SortAlgorithm, welches aufs wesentliche reduziert so aussieht:
Code:
package tut_aufgabe05;

/**
 * Interface für einen Sortieralgorithmus
 * 
 */
public interface SortAlgorithm {
	/**
	 * Sortiert mithilfe von sorter das Feld über den implementierten Algorithmus
	 * @param sorter Der Sortierer
	 */
	public void run(Sorter sorter);
}

Auf der Basis von Sorter habe ich eine Klasse ArraySorter implementiert:

Code:
package tut_aufgabe05;

public class ArraySorter implements Sorter
{
	Comparable[] elements;
	Comparable[] elements_beginning;
	
	ArraySorter(Comparable[] c)
	{
		elements=new Comparable[c.length];
		elements_beginning=new Comparable[c.length]; // Diese Zeile ist unwichtig für das Problem
		
		for (int i=0; i<c.length; i++)
		{
			elements[i]=c[i];
			elements_beginning[i]=c[i];
		}
	}
	
	public int getLength()
	{
		return elements.length;
	}

	public int compareElements(int a, int b)
	{
		return elements[a].compareTo(elements[b]);
	}
	
	// selbstverständlich kommt auch hier noch eine Menge anderes Zeug
}

Außerdem habe ich auf Basis von SortAlgorithm ein BubbleSort implementiert
Code:
package tut_aufgabe05;

public class BubbleSort implements SortAlgorithm
{
	public void run(Sorter sorter)
	{
		for (int i=0; i<sorter.getLength(); i++)
			for (int j=0; j<i; j++)
			{
				if (sorter.compareElements(j,i)>0)
				{	
					sorter.xchange(i,j);
				}
			}
	}
}


Nun zu meinem Problem:

Ich habe ein kleines Testprogramm implementiert:
Code:
package tut_aufgabe05;

public class SortView
{
	public static void main(String[] args)
	{
		// I have simply used some random numbers
		Integer[] array2sort=
		{
			new Integer(609),
			new Integer(10),
			new Integer(232),
			new Integer(353),
			new Integer(132),
			new Integer(44),
			new Integer(16),
			new Integer(390),
			new Integer(988),
			new Integer(726)
		};
		
		ArraySorter as=new ArraySorter(array2sort);
		
		System.out.println(as.compareElements(1,2));
			
		BubbleSort bs=new BubbleSort();
		
		bs.run(as);
	}
}

In ihm kommt es zu folgendem Output:
-1
Exception in thread "main" java.lang.ClassCastException
at java.lang.String.compareTo(String.java:777)
at tut_aufgabe05.ArraySorter.compareElements(ArraySorter.java:31)
at tut_aufgabe05.BubbleSort.run(BubbleSort.java:15)
at tut_aufgabe05.SortView.main(SortView.java:42)
Press any key to continue...

(Ausgabe des ungekürzten Programms)

Seltsamerweise funktioniert es mit einem String[]-Array korrekt. Noch seltsamer: in main() funktioniert der Vergleich korrekt (System.out.println(as.compareElements(1,2));). Nur nicht im BubbleSort.

Mein Wunsch: könntet ihr das Programm so korrigieren, dass diese Exception, deren Ursache ich nicht kenne, nicht mehr auftritt? Ich weiß, dass es möglicherweise nervig ist, das Programm eines Fremden zu debuggen. Aber angesichts der Tatsache, dass ich fast eine ganze Stunde dasaß, um das Programm für das Forum auf das wesentliche zu reduzieren, bin ich der Meinung, dass das dennoch zumutbar ist.
 

Karl

Aktives Mitglied
Hallo,

merkwürdig, nachdem ich die fehlende Methode xchange(i,j) im Interface Sorter und in der Klasse ArraySorter
ergänzt hatte, habe ich das das Programm laufen lassen. Kein Problem, sowohl für Strings als auch für Integers.
Anscheinend hast Du Deinen Fehler beim Kürzen versehentlich behoben ;-).

Gruß,
Karl
 

Bleiglanz

Gesperrter Benutzer
du kürzt herum wie ein wilder, vergisst aber zu sagen, was in Zeile 31 im ArraySorter bei dir steht???
 
W

Wolfgke

Gast
@Karl:
Auf deinen Tipp hin, dass du xchange noch implementieren musstest und es geht:

Als ich die xchange-Zeile (sorter.xchange(i,j);) in BubbleSort.java auskommentierte, funktionierte es.

Daraus schließe ich: darin muss die Ursache liegen.

...und ich konnte den Fehler finden!
Danke, danke, danke euch allen! Besonders weil ich bei dieser Sache unter einem nervigen Zeitdruck stehe, war das echt Gold wert!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Wie ermittelt man alle testbaren (zu testenden) Klassen in seinem Maven-Projekt? Allgemeine Java-Themen 23
G Maven Projekt JAR-Datei Allgemeine Java-Themen 6
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
Jose05 mit 2 - 3 Personen an einem Projekt coden Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
G JavaFX Maven Projekt als .exe Datei exportieren Allgemeine Java-Themen 10
S Microservice Projekt verwalten Allgemeine Java-Themen 22
alinakeineAhnungv Hilfe bei einem Straßenbahn-Projekt von mir Allgemeine Java-Themen 18
O community projekt Allgemeine Java-Themen 9
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
pkm Warnungen in einem Drools-Projekt unterdrücken? Allgemeine Java-Themen 1
platofan23 Wie .txtDatei im Java Eclipse-Projekt bzw. in der Jar speichern? Allgemeine Java-Themen 7
O Suche Unterstützung für ein OpenSource-Projekt (grafischer Editor) Allgemeine Java-Themen 13
DonMalte Ambitioniertes Projekt für Einsteiger & Motivierte Allgemeine Java-Themen 0
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
M Brainstorming für mein Projekt Allgemeine Java-Themen 30
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
J Alle Unit Tests in Maven Modul Projekt ausführen Allgemeine Java-Themen 7
xYurisha Eclipse, Projekt beschädigt! Allgemeine Java-Themen 6
P BlueJ BlueJ Gloop City Projekt Allgemeine Java-Themen 0
R Praktikums Projekt Java vs MySQL Allgemeine Java-Themen 91
H Projekt Quadraturverfahren Rechner Allgemeine Java-Themen 2
S WebApplikation Projekt in Firma Allgemeine Java-Themen 2
S Eclipse Github Projekt in eigenes Projekt einbinden und nutzen Allgemeine Java-Themen 13
T iText mit eclipse richtig in Java-Projekt einbinden Allgemeine Java-Themen 2
J Java Projekt, Online-Datenabfrage, Visualisierung Allgemeine Java-Themen 3
markuskat Erste Schritte JavaEE WebApplication - Erstes Projekt Allgemeine Java-Themen 16
O Compiler-Fehler Wie kompiliere ich dieses Alt-Projekt ? Allgemeine Java-Themen 9
P Eclipse Projekt anlegen macht Problem Allgemeine Java-Themen 1
N Eclipse Projekt von GitHub in bestehendes Projekt einbinden Allgemeine Java-Themen 13
G Mein PDF Projekt mit iText Allgemeine Java-Themen 2
G Kleines Projekt Allgemeine Java-Themen 2
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
M Maven Dependency aus Projekt nicht aus Repo Allgemeine Java-Themen 3
S Erstes größeres Java Projekt: Etiketten Allgemeine Java-Themen 3
M Eclipse libgcrypt für window in java Projekt einbinden Allgemeine Java-Themen 1
N Kleines GUI/Sortier Projekt für die Uni Allgemeine Java-Themen 11
M Eclipse Eine xhtml aus einem JSF Projekt starten Allgemeine Java-Themen 2
A Android App Projekt Allgemeine Java-Themen 0
I Zu zweit an einem Projekt? Allgemeine Java-Themen 1
M SQL Datenbank in JAVA Projekt Allgemeine Java-Themen 3
U BlueJ NXT Projekt programmieren Allgemeine Java-Themen 0
C Projekt Realisierung Allgemeine Java-Themen 7
J C++ Projekt (QT) in Java mit Klassen (nicht imperativ) nutzen (BridJ? JavaCPP? SWIG? JNA? JNI?) Allgemeine Java-Themen 2
A Ausführbare Java-Datei aus Projekt und Datenbank Allgemeine Java-Themen 3
K Code zu einem Projekt entschluesseln Allgemeine Java-Themen 15
A mini Projekt Allgemeine Java-Themen 4
U Eclipse Java Projekt - Webservice einbinden Allgemeine Java-Themen 7
I Projekt wird nicht erstellt Allgemeine Java-Themen 2
R Aus Eclipse Projekt ein UML erzeugen Allgemeine Java-Themen 3
V System.out.println an jeder Stelle im Projekt löschen Allgemeine Java-Themen 4
M JSF-Projekt, Datasourceproblem Allgemeine Java-Themen 7
B Großes Projekt "gut" schreiben Allgemeine Java-Themen 22
maestr0 Programmatische Java Projekt Erstellung Allgemeine Java-Themen 2
J Projekt mit mehreren Einzelprogrammen Allgemeine Java-Themen 2
P Ant oder Dynamic Web Projekt Allgemeine Java-Themen 3
Kenan89 Riesen Java Projekt Allgemeine Java-Themen 10
127.0.0.1 Subversion neues SVN Projekt, keine Main gefunden ?! Allgemeine Java-Themen 7
S Compiler-Fehler Providing JavaCompiler within Projekt Allgemeine Java-Themen 10
P Eclipse Gemeinsam mit NetBeans an einem Projekt arbeiten? Allgemeine Java-Themen 3
T HTTP HttpWebRequest in Swing-Projekt nutzen Allgemeine Java-Themen 4
S .Classpath Datei im Eclipse Projekt Allgemeine Java-Themen 7
Ollek MVC - Anwendung auf mein Projekt Allgemeine Java-Themen 18
J Herangehensweise an ein Projekt? Allgemeine Java-Themen 11
N Hilfe bei Projekt Allgemeine Java-Themen 5
M Suche Java-Projekt zum Thema Elektrotechnik Allgemeine Java-Themen 6
A Java Projekt (Daten Eingeben, Speichern und in Listen Ausgeben) Allgemeine Java-Themen 6
M Erstes eigenes Projekt Allgemeine Java-Themen 5
C Architekturvorschläge für kleines Projekt Allgemeine Java-Themen 2
Y Notenbuch - Projekt Allgemeine Java-Themen 56
N php projekt in java importieren Allgemeine Java-Themen 4
E Neues Projekt - Welche GUI / IDE /Techniken / etc. Allgemeine Java-Themen 14
J Open Source Projekt anbieten - Leitfaden gesucht Allgemeine Java-Themen 3
N Idee für Java Projekt Allgemeine Java-Themen 30
M GoogleMaps mit Projekt verknüpfen Allgemeine Java-Themen 7
Y Auszuführendem Projekt mehr Speicherplatz zuweisen Allgemeine Java-Themen 3
S Umstellen Java-Projekt zum Web-Projekt Allgemeine Java-Themen 3
B Komplettes Projekt als UML Diagramm mit eUML...geht das? Allgemeine Java-Themen 10
P Projekt-Export Allgemeine Java-Themen 10
D eclipse projekt ohne eclipse ausführen? Allgemeine Java-Themen 14
P Jar-export funktioniert nur bei einem projekt nicht Allgemeine Java-Themen 5
S brauche dringend help bei einem projekt (Römisch-dezimal) Allgemeine Java-Themen 3
S Projekt in Jbuilder 05 Allgemeine Java-Themen 3
M Import findet das Projekt nicht. Allgemeine Java-Themen 5
G Projekt aus Firma zuhause importieren? Allgemeine Java-Themen 7
T Projekt zur Abschlussprüfung genug? Allgemeine Java-Themen 6
N Beteiligung an Projekt Allgemeine Java-Themen 6
F "source not found" in eigenem Projekt mit eigenen Allgemeine Java-Themen 2
S Swing-Projekt zum Üben Allgemeine Java-Themen 5
G ||| Textdateien aus dem eigenen Projekt lesen. Allgemeine Java-Themen 16
S Listener-Problematik in komplexem Projekt Allgemeine Java-Themen 2
I "Einstiegs Projekt" Allgemeine Java-Themen 20
S Projekt als Jar abspeichern! wie? Allgemeine Java-Themen 6
A Eigenes jar file in projekt einbinden Allgemeine Java-Themen 4
T Java-Projekt bei sourceforge.net Allgemeine Java-Themen 3
G Projekt Planung - Teamwork Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben