非數字原始投射
boolean
型別不能轉換為任何其他基本型別。
通過使用 Unicode 指定的程式碼點對映,可以將 char
強制轉換為任何數字型別。char
在記憶體中表示為無符號的 16 位整數值(2 個位元組),因此轉換為 byte
(1 個位元組)將丟棄其中的 8 個位(這對於 ASCII 字元是安全的)。Character
類的實用方法使用 int
(4 位元組)傳輸到/從程式碼點值傳輸,但是 short
(2 位元組)也足以儲存 Unicode 程式碼點。
int badInt = (int) true; // Compiler error: incompatible types
char char1 = (char) 65; // A
byte byte1 = (byte) 'A'; // 65
short short1 = (short) 'A'; // 65
int int1 = (int) 'A'; // 65
char char2 = (char) 8253; // ‽
byte byte2 = (byte) '‽'; // 61 (truncated code-point into the ASCII range)
short short2 = (short) '‽'; // 8253
int int2 = (int) '‽'; // 8253