奇怪的java行为

Shi*_*h11 0 java behavior

任何人都可以解释我这个

int i=2;
int j=+-i;//-+i; 
Run Code Online (Sandbox Code Playgroud)

的值j=-2中的任一情况下+-i-+i.

这在Java中很好吗?或者这应该是编译器错误?

提前谢谢.

Jon*_*eet 11

没关系 - 你刚刚有两个一元操作员在一起.所以它要么:

int j = +(-i);
Run Code Online (Sandbox Code Playgroud)

要么

int j = -(+i);
Run Code Online (Sandbox Code Playgroud)

有关这两个运算符,请参见JLS的15.15.315.15.4 .