komische ClassCastException

MrOTJ

Mitglied
Hi miteinander, diesmal ein eiegtnlich einfaches aber unlotgisches Problem:

meine Klassen:

Code:
public class Customer extends User {
.....

Code:
public class User implements Serializable {
.......

Die Zeile wo der Fehler fliegt:
Code:
 public Customer createCustomer(User userDto) {
    	
.....
try{
        Customer custold = (Customer) userDto;  //genau hier

Der Fehler:
java.lang.ClassCastException: de.example.model.User


Sollte das nicht eigentlich kein Problem sein, ist ja ein regelkomforner Cast!
Woran kann das liegen?

Dank euch allen und ne schöne Woche!
 
Hallo,

ist es leider nicht. Customer erweitert User, also ist jeder Customer gleichzeitig ein User, aber noch lange nicht jeder User auch ein Customer.
 
Wow, danke für die schnelle Antwort.
Doch wie lös ich das denn dann?

ich brauche ja die Eigenschaften des Users auf den Costumer übertragen...
muss ich das tatsächlich einzeln zuweisen?

Vielen dank dir nochmal...

P.S:: Variablen in der Oberklasse als protected setzten nicht vergessen!
 
Hi nochmal,

also hab mir den Satz:

Customer gleichzeitig ein User

nochmal durch n Kopf gerattert, und nun alles klar.

Ich hantiere einfach nur noch mit Customer Objekten, auch schon im vornherein, somit muss das klappen und ich spare mir..bis jetzt...jegleichen Cast!

Thx nochmal.....
 
Die Attribute des Users hat doch der Customer automatisch, da dieser ja User erweitert.

Deine Methode würde nur als Allgemeinerung Sinn machen:
Code:
public void tuwasAllgemeines(User user) {
  // macht dann irgendwas Allgemeines
  if (user instanceof Customer) {
    tuwasSpezielles((Customer)user);
  }
}
public void tuwasSpezielles(Customer c) {
  // macht was mit dem Customert
}
 
Zurück