美文网首页
Long a=1为何编译报错

Long a=1为何编译报错

作者: 桭宝 | 来源:发表于2021-01-19 16:12 被阅读0次

对类型转换和自动装箱做个串联小结:

1. long a=1;  //编译通过,向上自动转型

2. long a=1;Long b=a;//编译通过,Long.valueOf 语法糖,自动装箱

3. Long a=1L;//同上

4.Long a=1;//编译报错

Long a=1 之所以报错,个人理解:

向上自动转型适用于基本类型,不能用于包装类型,因此场景1不适用;

自动装箱只适用于基本类型和包装类型直接匹配的场景,无法通过自动转型间接匹配。示例2中1L编译器可以识别为long,变量类型为Long,可以进行自动装箱;示例4中1的基本类型为int,变量类型为Long,二者不匹配,无法装箱。尽管int可以通过自动转型成为long,但目前看来编译器无法再自动装箱的同时应用类型转换。

相关文章

网友评论

      本文标题:Long a=1为何编译报错

      本文链接:https://www.haomeiwen.com/subject/uenqzktx.html