Hallo zusammen,
ich werde grade wieder mit einer in meinen Augen sinnlosen Exception genervt...
Hintergrund:
Ich habe eine editierbare ComboBox. Wenn ein User einen Wert einträgt und committed, soll dieser Wert in die Combo-Box übernommen werden.
Meine ComboBox erwartet ein Objekt vom Typ OfferTemplate, das lediglich einen key und eine Beschreibung enthält:
Problem:
Wenn ich nun im Eventhandler der Box versuche, mit ComboBox.getValue.getDescription den Wert auszulesen, bekomme ich folgende Meldung:
Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class sdg.main.OfferTemplate (java.lang.String is in module java.base of loader 'bootstrap'; sdg.main.OfferTemplate is in unnamed module of loader 'app')
at sdg.main.MainController.onTemplateCreate(MainController.java:115)
at sdg.main.MainController.onTemplateSelected(MainController.java:122)
... 67 more
Frage:
1. Warum will er hier von String nach OfferTemplate casten? Das müsste doch, wenn überhaupt, andersrum sein oder?
2. Warum bekomme ich diese Exception überhaupt? Ich habe keine module-info-Datei und verwende die Container-Klasse auch an anderen Stellen, wo es nicht knallt. Und er fällt auch definitiv bei der Methode auf die Nase. Wenn ich ein neues Objekt an der gleichen Stelle erzeuge vom gleichen Typ, macht der das ohne Motzen. Wenn ich mir aber über die Methode den eingegebenen Wert geben lassen möchte, schmiert der ab
Danke und Gruß
ich werde grade wieder mit einer in meinen Augen sinnlosen Exception genervt...
Hintergrund:
Ich habe eine editierbare ComboBox. Wenn ein User einen Wert einträgt und committed, soll dieser Wert in die Combo-Box übernommen werden.
Meine ComboBox erwartet ein Objekt vom Typ OfferTemplate, das lediglich einen key und eine Beschreibung enthält:
Java:
/*
* Container-Klasse für die verschiedenen gespeicherten Templates
*/
public class OfferTemplate {
private int id;
private String description;
public OfferTemplate(int id, String description) {
this.id = id;
this.description = description;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String toString() {
return this.description;
}
}
Problem:
Wenn ich nun im Eventhandler der Box versuche, mit ComboBox.getValue.getDescription den Wert auszulesen, bekomme ich folgende Meldung:
Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class sdg.main.OfferTemplate (java.lang.String is in module java.base of loader 'bootstrap'; sdg.main.OfferTemplate is in unnamed module of loader 'app')
at sdg.main.MainController.onTemplateCreate(MainController.java:115)
at sdg.main.MainController.onTemplateSelected(MainController.java:122)
... 67 more
Frage:
1. Warum will er hier von String nach OfferTemplate casten? Das müsste doch, wenn überhaupt, andersrum sein oder?
2. Warum bekomme ich diese Exception überhaupt? Ich habe keine module-info-Datei und verwende die Container-Klasse auch an anderen Stellen, wo es nicht knallt. Und er fällt auch definitiv bei der Methode auf die Nase. Wenn ich ein neues Objekt an der gleichen Stelle erzeuge vom gleichen Typ, macht der das ohne Motzen. Wenn ich mir aber über die Methode den eingegebenen Wert geben lassen möchte, schmiert der ab
Danke und Gruß