Java Reference
In-Depth Information
A variable that is declared final cannot be incremented because when an access of such a
final variable is used as an expression, the result is a value, not a variable. Thus, it cannot
be used as the operand of a prefix increment operator.
15.15.2. Prefix Decrement Operator --
A unary expression preceded by a -- operator is a prefix decrement expression.
The result of the unary expression must be a variable of a type that is convertible (§ 5.1.8 )
to a numeric type, or a compile-time error occurs.
The type of the prefix decrement expression is the type of the variable. The result of the
prefix decrement expression is not a variable, but a value.
At run time, if evaluation of the operand expression completes abruptly, then the prefix
decrement expression completes abruptly for the same reason and no decrementation oc-
curs. Otherwise, the value 1 is subtracted from the value of the variable and the difference
is stored back into the variable. Before the subtraction, binary numeric promotion (§ 5.6.2 )
is performed on the value 1 and the value of the variable. If necessary, the difference is nar-
rowed by a narrowing primitive conversion (§ 5.1.3 ) and/or subjected to boxing conversion
5.1.7 ) to the type of the variable before it is stored. The value of the prefix decrement
expression is the value of the variable after the new value is stored.
Note that the binary numeric promotion mentioned above may include unboxing con-
version (§ 5.1.8 ) and value set conversion (§ 5.1.13 ). If necessary, format conversion is
applied to the difference prior to its being stored in the variable.
A variable that is declared final cannot be decremented because when an access of such a
final variable is used as an expression, the result is a value, not a variable. Thus, it cannot
be used as the operand of a prefix decrement operator.
15.15.3. Unary Plus Operator +
The type of the operand expression of the unary + operator must be a type that is convertible
5.1.8 ) to a primitive numeric type, or a compile-time error occurs.
Unary numeric promotion (§ 5.6.1 ) is performed on the operand. The type of the unary plus
expression is the promoted type of the operand. The result of the unary plus expression is
not a variable, but a value, even if the result of the operand expression is a variable.
At run time, the value of the unary plus expression is the promoted value of the operand.
Search WWH ::




Custom Search