正如其他答案所指出的,此行为是因为三元表达式的两个可能结果都必须具有相同的类型。
因此,您要做的所有事情都可以使三元版本的工作方式与
convert1()将强制转换
int为的方式相同
Object:
static Object convert2(double d) { return ((d % 1) == 0) ? ((Object) (int) (d)) : d;}
正如其他答案所指出的,此行为是因为三元表达式的两个可能结果都必须具有相同的类型。
因此,您要做的所有事情都可以使三元版本的工作方式与
convert1()将强制转换
int为的方式相同
Object:
static Object convert2(double d) { return ((d % 1) == 0) ? ((Object) (int) (d)) : d;}