Problem mit generischen klassen und methoden

wie gesagt, bei mir schränkt sich das aber auf die menge der verschiedenen zahlentypen ein, und das es so nciht funktioniert weis sich ja selber, wollte ja wissen wie man es hinbiegen könnte das es vieleicht doch funktioniert.
 
Hi.
Ok,

nochmal von anfang an,
Bitte halte dich von Anfang an an die Netiquette, insbesondere Punkt 15!

ich habs oben extra nochmal mit pfeilen nun markiert, auf einen bestimmten typ casten und dann auf eien variable diesen typs zuweisen geht, das ist aber nciht das was ich will, sondern ich will es den attributes des objektes zuweisen, welchen dann den gleichen typ beim initialisieren bekommt wie die zu addieren objete.
und mir ist schon klar das diese klasse mit string keinen sinn machen würde, ist halt eher allgemein im sinne von allen zahlen typen.
Das wird so aber nicht funktionieren. Erstens ist der Additionsoperator nur auf primitiven Zahlentypen definiert - die Generics funktionieren aber nur mit richtigen Klassen. Egal welche Klasse nun hinter der Instanz steckt, du mußt immer wieder auf einen primitiven Typ casten, denn sonst kannst du nicht addieren.

Die Generics helfen dir hier auch nicht weiter, da zur Laufzeit die Typinformationen gelöscht sind und man nicht sagen kann, ab ein Objekt jetzt ein Complex<Double> oder Complex<String> ist. (nach deiner Definition wäre String erlaubt, du könntest den Typ höchstens noch mit "<T extends Number>" einschränken)

Es wäre meiner Meinung nach sinnvoller die Complex Klasse ohne Generics zu implementieren und die real und imag Attribute als Number zu deklarieren.

Gruß
 
Zurück