在Java中混淆​​类型转换

Bha*_*esh 3 java casting

可能重复:
使用强制转换为基本类型的奇怪java行为

我们来看看Java中的以下代码片段.

package typecasting;

final public class TypeCasting
{
    public static void main(String[] args)
    {
        int i = (byte) + (char) - (int) + (long) - 1;
        System.out.print("\n i = "+i+"\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

该陈述System.out.print("\n i = "+i+"\n");显示i = 1.怎么样?

SLa*_*aks 7

此代码使用一元+-运算符.

它等同于-(-1)一堆额外的演员阵容.(一元运算+不会更改值)