美文网首页
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