跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么会有这种类型转换
未分類
4 2 月 2021

为什么会有这种类型转换

为什么会有这种类型转换

資深大佬 : anzu 5

    private static Integer getInteger() {         return null;     }      public static void main(String[] args) {         boolean condition = false;         // error: null pointer exception         Integer i = condition ? 1 : getInteger();         if (Objects.equals(i, 1)) {             System.out.println("i == 1");         } else {             System.out.println("i == null");         }     }  

为什么是 getInteger() 返回值退化成 int 而不是 1 提升为 Integer ?

大佬有話說 (4)

  • 資深大佬 : mgzu

    用 JD-GUI 看到的反编译结果是
    Integer i = Integer.valueOf(condition ? 1 : getInteger().intValue())

  • 資深大佬 : AoEiuV020

    还真没注意过这情况,确实有点不友好,出来本来可以避免的空指针,
    不过从一开始我记得的就是 Integer 参与运算会拆箱,int 参与泛型会装箱,
    倒是没有违反我的记忆,

  • 資深大佬 : Bronya

    主你发的链接里,bnp(..) T | bnp(..) lub(..) 分别是什么意思呀?
    ~~翻译了一下没看太明白

  • 資深大佬 : AoEiuV020

    啊这,有点宁信度了,代码都跑过了,确实是拆箱,那设计上当然就是拆箱,白皮书当然写着拆箱,不看出知道吧,

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具