将字节分配给最终整数
assign byte to Final Integer
可以将已声明为 final
的类型 int
的变量分配给字节数据类型变量吗?为什么?
public class ByteDataType {
public int x=20;
byte a=x; //This is an error
public final int z=30;
byte c=z; // This is not an Error !! Why???
}
我猜这是因为编译器可以很容易地在编译时检查 z 是否在范围内,因为它是常量(最终的)但是对于 x 编译器需要更多的努力来检查 x 不能有自初始化以来发生了变化,为此编程语言编写规范的人决定禁止 a=x 以使编译器的工作更轻松。
可以将已声明为 final
的类型 int
的变量分配给字节数据类型变量吗?为什么?
public class ByteDataType {
public int x=20;
byte a=x; //This is an error
public final int z=30;
byte c=z; // This is not an Error !! Why???
}
我猜这是因为编译器可以很容易地在编译时检查 z 是否在范围内,因为它是常量(最终的)但是对于 x 编译器需要更多的努力来检查 x 不能有自初始化以来发生了变化,为此编程语言编写规范的人决定禁止 a=x 以使编译器的工作更轻松。