byte b=5;
Integer i=(int)b;//b cast to int and int wrapped into Integer
Integer k=(byte)b;//compilation error, cannot convert from byte to Integer
Integer z=(byte)5;//compiles
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么Integer z=(byte)5编译而Integer k=(byte)b不是?对于这个问题Integer z1 = (byte)5L,Integer z2 = (byte)5.3F也编译.是因为我试图转换编译时常量并且转换对它没有影响吗?
作为任务
Integer z=(byte)5
使用文字值,它由编译器立即翻译
Integer z = Integer.valueOf(5);
Run Code Online (Sandbox Code Playgroud)
编译器不够智能,无法引用变量,如下所示:
Integer k= (byte)b;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |