zoukankan      html  css  js  c++  java
  • 解决NPE的有效方法

    判断两个对象是否相等

    Objects.equals(a,b)

    自动拆箱判断相等

    Objects.equals(0,Integer)

    判断字符串是否为空

    StringUtils.isBlank(str)

    判断集合是否为空

    CollectionUtils.isEmpty(collection)

    总结

    1. 意识:使用 obj.doSomething() 时记得判断 obj != null。意识的养成需要一个漫长的过程,我们可以通过工具来帮忙,IDEA 就是一个非常出色的工具。

    2. 判断对象是否相等时,使用 Objects.equals(a, b) ,当然 Objects 工具类还贴心地为我们提供了 toString 和 requireNonNull 这样的好帮手

    3. 自动拆箱的陷阱。当使用包装类与原始类型做比对时,要特别注意空指针问题

    4. 检查字符串是否为空时,使用 commons-lang3 包 StringUtils 提供的isEmpty 和isBlank 方法 。另外, 使用 lowerCase 和 upperCase 进行字符串转换大小写转换,也可以避免空指针

    5. 使用 commons-collections 包的 CollectionUtils.isEmpty 方法来检查集合是否为空

    6. 返回集合的接口若需要返回空,则返回空集而不是 null。但是每次都 new 出新的集合,会影响性能和不必要的对象创建,使用 Collections.emptyList(); 可以返回全局共享的不可变空集合

    7. Optional 是 Java8 推出的解决 NPE 的利器,当它跟 Lambda 表达式结合时会非常强大

  • 相关阅读:
    文本信息检索基本知识【转】
    单纯形【转】
    云飘忽不定?且看多种多样的云存储应用【转】
    海量数据来临 分层存储才是解决之道【转】
    伽玛函数_gamma
    设计模式理解创建模式
    Memory management demo from TCPL
    Welcome to asm!
    Monokai scheme for Qt
    Astyle for qtcreator
  • 原文地址:https://www.cnblogs.com/siran/p/11280526.html
Copyright © 2011-2022 走看看