Java Reference
In-Depth Information
15.15.6. Logical Complement Operator
!
The type of the operand expression of the unary
!
operator must be
boolean
or
Boolean
, or a
compile-time error occurs.
The type of the unary logical complement expression is
boolean
.
At run time, the operand is subject to unboxing conversion (§
5.1.8
) if necessary. The value
of the unary logical complement expression is
true
if the (possibly converted) operand value
is
false
, and
false
if the (possibly converted) operand value is
true
.
15.16. Cast Expressions
A cast expression converts, at run time, a value of one numeric type to a similar value of
another numeric type; or confirms, at compile time, that the type of an expression is
boolean
;
or checks, at run time, that a reference value refers to an object whose class is compatible
with a specified reference type.
The parentheses and the type they contain are sometimes called the
cast operator
.
CastExpression:
(
PrimitiveType
)
UnaryExpression
(
ReferenceType
)
UnaryExpressionNotPlusMinus
See §
15.15
for a discussion of the distinction between
UnaryExpression
and
Un-
aryExpressionNotPlusMinus
.
type whose name appears within the parentheses.
The result of a cast expression is not a variable, but a value, even if the result of the operand
expression is a variable.
A cast operator has no effect on the choice of value set (§
4.2.3
) for a value of type
float
or type
double
. Consequently, a cast to type
float
within an expression that is not FP-strict
set, and a cast to type
double
within an expression that is not FP-strict does not necessarily
cause its value to be converted to an element of the double value set.
It is a compile-time error if the compile-time type of the operand may never be cast to the
type specified by the cast operator according to the rules of casting conversion (§
5.5
).