我有一个代码段:
class AutoTypeCast{ public static void main(String...args){ int x=10; byte b=20;//no compilation error byte c=x;//compilation error } }
为什么20不自动类型转换为bytewhile x?
20
byte
x
因为x是,int并且具有更大的范围byte。因此,将其分配给可能会导致数据丢失byte。
int
20是一个常数,而编译时间保证在的范围内byte。