OOP ClassCastException bei casting von eigener Klasse aus Iterator

Skrodde

Aktives Mitglied
Hallo zusammen,
in meinem Projekt gibt es folgende Methode:

Java:
//Convert the result into a solution
			HashMap<Variable,Number> variableAssignment = new HashMap<Variable,Number>();
			
			for(Iterator<Object> iter = prob.getVariables().iterator(); iter.hasNext();) {
				Variable variable = (Variable) iter.next();
				variableAssignment.put(variable, result.get(variable.getName()));
			}

Diese nutzt

Java:
public ArrayList<Variable> getVariables();

auf der Klasse Variable

Java:
public class Variable {
	
	private String identifier;
	private OptVarType type;
	private Number lowerBound;
	private Number upperBound;
}

Wenn ich das Programm mit einem Testfall starte, bekomme ich momentan den folgenden Fehler in der fünften Zeile des ersten Listings:

Code:
Objective: 6266 {y=52, x=22}
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to Variable
	at ILPSolver.solve(ILPSolver.java:108)
	at Opt.mysolverTest(Opt.java:107)
	at Opt.main(Opt.java:25)

Ich verstehe nun überhaupt nicht, warum der Iterator mir als Objekt einen String ausspuckt, es sollte doch eine Variable sein, oder?

Vielen Dank für's durchsehen, Gruß, Skrodde
 
S

SlaterB

Gast
wenn du schon Generics hast, verwende doch Iterator<Variable>, dann kannst du dir den Cast sparen,
oder verzichte ganz auf Iterator und schreibe
Java:
for (Variable variable : prob.getVariables()) {
   variableAssignment.put(variable, result.get(variable.getName()));
}

mit deinem Problem hatte das freilich bisher nichts zu tun,
in der Liste ist einfach ein String drin, daran ist nicht zu rütteln

aus deinem Code ist nicht erkennbar, wer das macht, da die Liste generisch ist dürfte es nicht ganz so leicht sein,
möglich ist es aber, Generic ist kein Universalschutz, letztlich ist eine ArrayList für alle Objekte da

schlimmstenfalls ist das gesamte Programm verdächtig,
unter 4 Mio. guten Code-Zeilen kann eine böse sein und einen String einfügen,

poste nur vollständige Programme, für vollständige Antworten ;)
oder schaue selber an wo die Liste verwendet wird
 

Flown

Administrator
Mitarbeiter
[EDIT]Zu langsam :D[/EDIT]

Warum nicht mit einer for-each?

Java:
for(Variable v : prob.getVariables()) {
    variableAssignment.put(v, result.get(v.getName()));
}
 

Skrodde

Aktives Mitglied
Vielen Dank für die Anregung, ich habe mich dann noch mal mit meinem Code auseinander gesetzt und festgestellt, dass ich nicht
Java:
public ArrayList<Variable> getVariables();
aus meiner OptProblem-Klasse nutze, sondern
Java:
Collection<Object> getVariables()
aus der Problem-Klasse von JavaILP. Und dort werden Variablen nur als Strings repräsentiert ... :oops:

In so fern ist alles gut und ich bedanke mich bei euch für den Denkanstoß, damit kann ich jetzt weiter machen :applaus:

P.S. Natürlich dann mit for-each Schleife :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L ClassCastException (JavaMail API) Allgemeine Java-Themen 3
P ClassCastException bei Verwendung eines Interfaces Allgemeine Java-Themen 7
G ClassCastException Allgemeine Java-Themen 17
A Vererbung Klassen-Downcasting wirft ClassCastException Allgemeine Java-Themen 2
F Interpreter-Fehler ClassCastException wird bei Schleifenaufruf geworfen Allgemeine Java-Themen 8
T java.lang.ClassCastException: Allgemeine Java-Themen 4
C java.lang.ClassCastException Allgemeine Java-Themen 3
T java.lang.ClassCastException Allgemeine Java-Themen 7
SuperSeppel13 ClassCastException Allgemeine Java-Themen 6
W java.lang.ClassCastException Allgemeine Java-Themen 10
H setWrappedData -> classcastexception Allgemeine Java-Themen 2
G java.lang.ClassCastException Allgemeine Java-Themen 3
G Dubiose ClassCastException in typisierter Map Allgemeine Java-Themen 4
B ClassCastException Allgemeine Java-Themen 2
V ClassCastException bei ArrayList Allgemeine Java-Themen 5
R ClassCastException Allgemeine Java-Themen 14
S Problem mit generics -> ClassCastException und ka wieso Allgemeine Java-Themen 20
B ClassCastException Allgemeine Java-Themen 17
S classCastException Allgemeine Java-Themen 4
S ClassCastException beim Casten in eine Klasse Allgemeine Java-Themen 7
M List casting error Allgemeine Java-Themen 3
C Problem mit dem Casting eines Objektes Allgemeine Java-Themen 4
J Casting Problem Object, Double und String Allgemeine Java-Themen 3
P Class Casting: Graphics/Graphics2D Allgemeine Java-Themen 7
lumo Casting Allgemeine Java-Themen 5
3 Casting problem Allgemeine Java-Themen 5
D Casting umgehen Allgemeine Java-Themen 2
D Object to Long casting Allgemeine Java-Themen 9
K Object casting geht nicht. Allgemeine Java-Themen 3
C Object casting Probleme Allgemeine Java-Themen 3
G JavaDocu in eigener Bibliothek Allgemeine Java-Themen 2
HarleyDavidson Eigener PropertyChangeListener funktioniert einfach nicht Allgemeine Java-Themen 3
T Datei öffnen mit eigener Applikation.exe Allgemeine Java-Themen 4
D Arraylist eigener Klasse an iReport übergeben Allgemeine Java-Themen 7
K Jar mit eigener JRE ausliefern Allgemeine Java-Themen 13
G eigener PropertyChangedListener Allgemeine Java-Themen 2
V Serialisierung von Instanz eigener Klasse Allgemeine Java-Themen 5
N Vergleich eigener Klassen Allgemeine Java-Themen 5
T Vererbung Eigener Datentyp: Betriebsmittel Allgemeine Java-Themen 2
J Erste Schritte Kommerzielle nutzung eigener Javaapplets auf der Homepage Allgemeine Java-Themen 2
B Probleme mit eigener equals Methode Allgemeine Java-Themen 18
Kr0e Eigener Updatemechanismus Allgemeine Java-Themen 7
J Mein eigener Messenger und dessen Probleme Allgemeine Java-Themen 48
S Profiler-Funktionen in eigener Applikation nutzen..? Allgemeine Java-Themen 5
R Eigener Comparator Allgemeine Java-Themen 2
T Zeit von einem Server/Webseite auslesen und in eigener GUI anzeigen Allgemeine Java-Themen 6
V Probleme mit eigener Hashmap Allgemeine Java-Themen 10
B Eigener ClassLoader Allgemeine Java-Themen 9
R Eigener Assoziativ-Speicher Allgemeine Java-Themen 7
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
P eigener Klassenname Allgemeine Java-Themen 4
D Eigener Key bei AES Verschlüsselung Allgemeine Java-Themen 4
T enums - eigener startwert Allgemeine Java-Themen 5
J Eigener ClassLoader wird nicht immer verwendet Allgemeine Java-Themen 3
P eigener Thread für einen JButton Allgemeine Java-Themen 32
F Checkbox in JTable , eigener Cellrenderer -wie gehts weiter? Allgemeine Java-Themen 2
A JRE auf eigener Seite verlinken oder zum Download anbieten? Allgemeine Java-Themen 13
E Wie: Eigener Listener, eigenes Event (möglichst einfach) Allgemeine Java-Themen 29
G eigener logger mittels classe (dynamische logfilename) log4j Allgemeine Java-Themen 15
D Eigener Maven2 Plugin Server? Allgemeine Java-Themen 3
I RSA - Eigener Quelltext Allgemeine Java-Themen 4
M eigener LautstärkeRegler schädlich für soundkarte? Allgemeine Java-Themen 4
K JTree plus eigener FileLoader Allgemeine Java-Themen 2
L Problem mit eigener, abgeleiteter Klasse Allgemeine Java-Themen 2
S Eigener Editor Allgemeine Java-Themen 7
L Eigener Onlinestunden- Zähler / Problemchen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben