Java -> Strenge Typprüfung?

flashray

Erfahrenes Mitglied
Hallo,

es heißt überall das Java mit strenger Typprüfung arbeitet. Leider habe ich keine Beschreibung dessen in den gängigen Online-Javabüchern gefunden.

Kann mir das jemand vielleicht erläutern?


Vg Erdal
 
Hallo,

wenn du versuchst einen Wert einer Variablen eines bestimmten Typs einer andren
Variable zuzuweisen, wobei aber die Wertebereiche der zwei Variablen nicht
kompatibel sind (will heißen: keine implizite Typumwandlung möglich ist) und das
bei der statischen Prüfung(durch den Compiler) des Programms zu einem Fehler
führt, würde ich von strenger Typprüfung sprechen:

Bspw. geht
Code:
int truncated_euler = 2.71;
in Java nur durch eine explizite Typumwandlung des Fließkommawertes 2.71 zu
einem Ganzzahlwert oder der Java Compiler bricht eben mit einer Fehlermeldung
ab.

In C/C++ bspw. erzeugt der Compiler bei obiger Zeile bestenfalls eine Warnung...

Gruß,
RedWing
 
Hallo Redwing,

kann man dann allgemein statische Typprüfungen als streng und dynamische als nicht streng einstufen?


Vg Erdal
 
Hallo,

also das würde ich jetzt so nicht unterstreichen wollen, da ja die dynamische
Prüfung erst recht meistens schwere Fehler hinter sich herzieht, bspw. das
Werfen einer ClassCastException und der damit verbundene Programm-
abbruch(sofern man die Exception nicht fängt)...
Sprich also ob nun dynamische oder statische Typprüfung stattfindet, daraus
kann man IMHO nicht folgern ob die Typprüfung streng oder nicht streng ist.

Aber generell würd ich sagen:
Desto geriger die Toleranz einer Prüfumgebung (Compiler, Prüfung der RTTI zur
Laufzeit durch die JVM) in Bezug auf Fehlermeldung bei der Typprüfung ist, desto
strenger ist die Typprüfung, unabhänging davon ob die Überprüfung nun zur
Laufzeit oder davor ausgeführt wird...

Gruß,
RedWing
 
Zurück