【发布时间】:2017-05-23 07:05:46
【问题描述】:
我是 Java 新手,但我用其他语言编写代码已经有一段时间了。今天我开始研究 Java,我注意到一个看起来很有趣的异常。
当我声明一个字节变量并尝试存储一个小于 -128 或大于 127 的数字时,编译器给我一个错误提示
“类型不匹配:无法从 int 转换为 byte”
现在我确切地知道为什么我不能存储例如 130 字节,但是如果我尝试将值分配给字节,为什么编译器会尝试从 int 转换为字节?
【问题讨论】:
-
所有数字默认为
int或double,您没有另外说。 -
您可以从
int转换为byte,如果您明确这样做:byte b = (byte)130。 -
顺便说一下,为避免混淆,您看到的是编译错误,而不是
Exception。异常是只在运行时抛出的东西。