Conversion between character and int in Java

后端 未结 3 1184
我在风中等你
我在风中等你 2020-11-30 10:52

You cannot convert from int to char, so this would be illegal int i = 88; char c = i;,

However this is allowed char c = 88;.

Isn\'t

3条回答
  •  無奈伤痛
    2020-11-30 11:14

    char is effectively an unsigned 16-bit integer type in Java.

    Like other integer types, you can perform an assignment conversion from an integer constant to any integer type so long as it's in the appropriate range. That's why

    byte b = 10;
    

    works too.

    From the JLS, section 5.2:

    In addition, if the expression is a constant expression (§15.28) of type byte, short, char or int :

    • A narrowing primitive conversion may be used if the type of the variable is byte, short, or char, and the value of the constant expression is representable in the type of the variable.
    • A narrowing primitive conversion followed by a boxing conversion may be used if the type of the variable is :
      • Byte and the value of the constant expression is representable in the type byte.
      • Short and the value of the constant expression is representable in the type short.
      • Character and the value of the constant expression is representable in the type char.

提交回复
热议问题