栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

包装器类-为什么整数文字对Long失败,但对更小的东西起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

包装器类-为什么整数文字对Long失败,但对更小的东西起作用

通常,您不能在分配中应用多个(隐式)转换(JLS§5.2分配转换):

将表达式的值(第15.26节)分配给变量时,将发生赋值转换:必须将表达式的类型转换为变量的类型。分配上下文允许使用 以下之一

  • 身份转换(第5.1.1节)
  • 不断扩大的原始转换(第5.1.2节)
  • 扩展参考转换(第5.1.5节)
  • 装箱转换(第5.1.7节)(可选),然后进行扩大的参考转换
  • 取消装箱转换(第5.1.8节),然后可以选择加宽原始转换。

Long l=250;
需要两次转换(先扩大原始转换再进行装箱转换),这就是为什么它不编译的原因。

Long l=250l;
进行编译,因为它需要一次装箱转换。

但是缩小常量表达式的转换是一个特例,这就是为什么要

Short s=250;
编译:

此外,如果该表达式是类型为byte,short,char或int的常量表达式(第15.28节):

  • 如果变量的类型为byte,short或char,并且常量表达式的值可表示为变量的类型,则可以使用缩窄的原始转换。
  • 如果变量的类型为:可以使用紧缩原始转换后跟装箱转换。
    • 字节和常量表达式的值可以在类型字节中表示。
    • 短,常量表达式的值可以用短类型表示。
    • 字符和常量表达式的值可以用char类型表示。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号