原始转换代码|需要帮助才能理解

时间:2017-10-24 11:00:11

标签: java

请帮助我了解以下代码是如何工作的?

int i = (byte) +(char) -(int) +(long) -1;

1 个答案:

答案 0 :(得分:3)

扩展代码

final long longValue = +(long) -1;
final int intValue = -(int) longValue;
final int charValue = +(char) intValue;
final int byteValue = (byte) charValue;
System.out.printf("%s %s %s %s%n", longValue, intValue, charValue, byteValue);

输出:

-1 1 1 1

解释

  • long值和以前一样-1,但是长,因为+ by iteself什么都不做
    • 价值后:-1
  • int值等于1,因为它反转-1
    • 价值后:1
  • char值保留此值,但转换为char
    • 价值后:1
  • 字节值保留此值,但转换为字节
    • 价值后:1

所以最终结果是1