Typzusicherung Java?

2 Antworten

Jetzt musste ich nachschauen, was in Hochschulamtsdeutsch eine "Typzusicherung" sein soll. Gemeint ist offenbar ein Typecast.

Das ist zwar immer derselbe Operator, aber kann völlig unterschiedliche Auswirkungen haben. Bei Referenztypen wird eigentlich gar nichts "umgewandelt": es geht nur darum, dass die jeweiligen Referenz auf einen kompatiblen Typ zeigt (d.h. Upcasts funktionieren immer, Downcasts natürlich nur, wenn die Typen zusammenpassen). Bei primitiven Typen wird tatsächlich ein neuer Wert gemacht, etwa bei float auf int.

Genauer hier nachzulesen:

https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.16

Kommt jetzt drauf an was du mit "Typzusicherung" meinst.

Grundsätzlich aber eher letzteres: Ein Objekt einer abgeleiteten Klasse kann die Stelle der zugesicherten (Super-)Klasse bzw. Interface jederzeit einnehmen.

Bei Primitiven Typen ähnlich, wegen Auto(un)boxing.

Wenn du also in einer Methodensignatur oder einer Variable den Typ "Number" zusicherst, dann kannst du da immer auch einen "Integer" reingeben. Weil der ja eine "Number" ist.