Java Puzzle读书笔记(2):条件操作符之类型推断

条件表达式是常见的一种表达式,看看下面这段代码输出什么?

char x = 'X';
int i = 0;
System.out.print(true ? x : 0);
System.out.print(false ? i : x);

预期是 XX,结果输出的是 X88

这里涉及到混合类型在表达式中的处理:

  1. x:0 char:int常量,这时表达式的类型就是char
  2. i:x int:char,这时表达式类型是int,计算表达式时对第2个操作符类型进行提升

在计算表达式时,对于混合类型要小心!

 

你可能感兴趣的:(java)