好吧,这是因为条件运算符的JLS规范:
否则,如果第二个和第三个操作数的类型可以转换(第5.1.8节)为数字类型,则有几种情况:
- …
- 否则,将二进制 数值提升(第
5.6.2节)应用于操作数类型,条件表达式的类型是第二和第三操作数的提升类型。
§5.6.2中定义了数字提升。它说:
扩展原语转换(第5.1.2节)适用于转换以下规则指定的一个或两个操作数:
- 如果一个操作数的类型为double,则另一个将转换为double。
- …

好吧,这是因为条件运算符的JLS规范:
否则,如果第二个和第三个操作数的类型可以转换(第5.1.8节)为数字类型,则有几种情况:
- …
- 否则,将二进制 数值提升(第
5.6.2节)应用于操作数类型,条件表达式的类型是第二和第三操作数的提升类型。
§5.6.2中定义了数字提升。它说:
扩展原语转换(第5.1.2节)适用于转换以下规则指定的一个或两个操作数:
- 如果一个操作数的类型为double,则另一个将转换为double。
- …