以下是代码块:
class Main {
public static void main(String[] args) {
System.out.println( + 1);
}
}
可以在Java 1.8上编译。
当运行此代码时,将打印1
。
System.out.println(+ + 1);
也会打印1
。
然而++1
无法编译通过。
+ + "str"
无法编译通过。
+ + true
无法编译通过。
因此,看起来它仅支持int、long和double。
为什么这个表达式对于上述数据类型是有效的呢?
++1
发生什么? - Nicholas K1
是一个可以写成+1
的正数,同样的负数可以写成-1
(但不是表达式而是字面量)。为了对表达式结果进行否定,您可以在表达式前加上减号-exp
=> 要否定表达式+1
的结果,您可以写成-+1
。现在这应该让您明白为什么++1
是有效的,以及+-1
或-----1
也是有效的。 - Grijesh Chauhan