mam napotkasz następującym zaskakującej linii:Java int + = podwójny składnia niespodzianka
int x = 7;
x += 0.5;
jest składnia pozornie legalne! Po dodaniu x wciąż wynosi 7, więc double jest rzutowany na int i zaokrąglany do 0, ale odbywa się to bez wyraźnego rzucania w kodzie. Czy ktoś jeszcze jest tym zaskoczony? Jakie jest uzasadnienie?
edytuj, aby wyjaśnić moje pytanie: Czy ktoś może podać uzasadnienie tej decyzji? Wydaje mi się to okropną decyzją wymagającą wyraźnego rzucania wszędzie, ale mam to jedyne miejsce w języku, w którym po cichu wyrzucasz dane. Czy czegoś brakuje?
interesujące. Jestem pewien, że [JLS] (http://docs.oracle.com/javase/specs/jls/se7/html/index.html) rozwiązuje ten problem. Czy spojrzałeś na to, aby zobaczyć, co mówi? –
@Hovercraft: JLS podaje specyfikację, ale nie uzasadnienie decyzji, o to właśnie pytam. –