Java implizite Umwandlungen, die zu einem Genauigkeits- oder Größenverlust führen können? [Duplikat]

8

Ich habe kürzlich gelernt , während ich Java-Code in C # umwandelte, dass der Java-Inkrementoperator '+ =' implizit umwandelt die Art von LHS:

%Vor%

entspricht: ( Details hier )

%Vor%

so leise die Gelegenheit für den Verlust der Größenordnung verursacht.

C # ist dies zur Kompilierzeit gewissenhafter:
Cannot convert source type long to target type int.

Gibt es andere ähnliche Situationen, die von Java erlaubt sind?

    
Cristi Diaconescu 19.12.2012, 10:31
quelle

1 Antwort

4

Ein Long kann zu einem Float oder Double befördert werden, was zu einem Genauigkeitsverlust führt:

%Vor%

druckt

%Vor%

Ich vermute, dass C # dasselbe tut.

Abgesehen von den bereits erwähnten zusammengesetzten Zuweisungsoperatoren glaube ich, dass dies alle Fälle sind, in denen eine implizite Umwandlung den Wert ändern kann.

    
meriton 19.12.2012, 16:11
quelle

Tags und Links