compile-time constant expression

xiaoxiao2026-06-22  6

 

A compile-time constant expression is an expression denoting a value of primitive type or a String that does not complete abruptly and is composed using only the following:

 

Literals of primitive type and literals of type String (§3.10.5) Casts to primitive types and casts to type String The unary operators + , - , ~ , and ! (but not ++ or -- ) The multiplicative operators * , / , and % The additive operators + and - The shift operators << , >> , and >>> The relational operators < , <= , > , and >= (but not instanceof ) The equality operators == and != The bitwise and logical operators & , ^ , and | The conditional-and operator && and the conditional-or operator || The ternary conditional operator ? : Parenthesized expressions whose contained expression is a constant expression. Simple names that refer to constant variables (§4.12.4) . Qualified names of the form TypeName . Identifier that refer to constant variables (§4.12.4) .

Compile-time constant expressions are used in case labels in switch statements (§14.11) and have a special significance for assignment conversion (§5.2) . Compile-time constants of type String are always "interned" so as to share unique instances, using the method String.intern.

A compile-time constant expression is always treated as FP-strict (§15.4) , even if it occurs in a context where a non-constant expression would not be considered to be FP-strict.

Examples of constant expressions:

true (short)(1*2*3*4*5*6) Integer.MAX_VALUE / 2 2.0 * Math.PI "The integer " + Long.MAX_VALUE + " is mighty big."

 

其中complete abruptly就是指突然结束,比如抛出一个异常之类

 

 

 

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-5050589.html

最新回复(0)