为什么可以';一元运算符直接对Java中的值进行操作?

为什么可以';一元运算符直接对Java中的值进行操作?,java,unary-operator,Java,Unary Operator,我不想这么做,但我想知道为什么一元运算符不能直接处理Java中的值 为什么result++工作但结果=0++不工作 在文档中我能找到的只是一元运算符只需要一个操作数,但操作数没有明确的定义,它似乎可以是变量或值。并不是一元运算符不起作用——例如,(+(-5))就可以了 但是++不仅仅计算一个值,它的目的是增加一个变量。0不是一个变量 From(后缀增量运算符++) 后缀表达式的结果必须是可转换(§5.1.8)为数值类型的变量,否则会发生编译时错误 请注意,这也不仅仅是文字。你不能这样做: Str

我不想这么做,但我想知道为什么一元运算符不能直接处理Java中的值

为什么
result++int result=0,则代码>工作
结果=0++不工作


文档
中我能找到的只是一元运算符只需要一个
操作数
,但操作数没有明确的定义,它似乎可以是变量或值。

并不是一元运算符不起作用——例如,(+(-5))就可以了

但是
++
不仅仅计算一个值,它的目的是增加一个变量。0不是一个变量

From(后缀增量运算符++)

后缀表达式的结果必须是可转换(§5.1.8)为数值类型的变量,否则会发生编译时错误

请注意,这也不仅仅是文字。你不能这样做:

String x = "foo";
x.length()++; // wrong!
因为同样,
x.length()
没有被归类为变量

但您可以使用其他一元运算符,例如

String x = "foo";
int y = -x.length(); // Unary - operator... that's fine

并不是一元运算符不起作用——例如,(+(-5))就可以了

但是
++
不仅仅计算一个值,它的目的是增加一个变量。0不是一个变量

From(后缀增量运算符++)

后缀表达式的结果必须是可转换(§5.1.8)为数值类型的变量,否则会发生编译时错误

请注意,这也不仅仅是文字。你不能这样做:

String x = "foo";
x.length()++; // wrong!
因为同样,
x.length()
没有被归类为变量

但您可以使用其他一元运算符,例如

String x = "foo";
int y = -x.length(); // Unary - operator... that's fine