Тогда и остальными частями true ? 1 : 2l
являются int
и long
. Результат является самым широким, long
, то часть-то приводится к длинному. См. JLS .
В области компьютерных наук для этого используется термин типов балансировки .
34 / 2.0 // double, more a case of _widening a type_.
c ? 2.0 : 34 // double