Typzusicherung Java?
Prüft eine Typzusicherung nur, ob sich ein Objekt in einen anderen Typ umwandeln lässt oder, ob das Objekt von einem bestimmten Typ ist...? Ich bin mir gerade nicht sicher und finde ehrlich gesagt keine genaue Antwort auf die Frage auf Google...
Danke und LG
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.