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?
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.
Tags und Links java compiler-errors precision