问题

Javaboolean允许值为true和false,而布尔允许值为true,false和null。我已经开始将mybooleans转换为Booleans。这可能会导致测试中的崩溃,例如

Boolean set = null;

...

if (set) ...

而考试

if (set != null && set) ...

看似人为,容易出错。

如果有的话,使用具有空值的Booleans是否有用?如果从来没有,那么被包裹物体的主要优点是什么?

更新:有很多有价值的答案,我在自己的答案中总结了一些。我充其量是Java的中间人,所以我试图展示我发现有用的东西。请注意,问题是"错误措辞"(布尔值不能"具有空值"),但我已将其留下以防其他人具有相同的误解

#1 热门回答(230 赞)

使用boolean,而不是Boolean,你可以。这将避免许多NullPointerException并使你的代码更健壮。

例如,Boolean很有用

在集合中存储布尔值(列表, Map 等)

表示可以为空的布尔值(例如,来自数据库中可以为空的布尔列)。在此上下文中,null值可能意味着"我们不知道它是真还是假"。

每次方法需要Object作为参数时,你需要传递一个布尔值。例如,使用反射或MessageFormat.format()等方法时。

#2 热门回答(51 赞)

我几乎从不使用Boolean,因为它的语义模糊不清。基本上你有三态逻辑:真,假或未知。有时在

java boolean空_什么时候应该使用Boolean的null值?相关推荐

  1. java boolean空_java - 什么时候应该使用Boolean的null值?

    java - 什么时候应该使用Boolean的null值? Java boolean允许值Boolean和false,而布尔值允许true,false和null.我已经开始将booleans转换为Bo ...

  2. java定义boolean命名_阿里规范:为何boolean类型变量命名禁用is开头

    java中,对于非boolean类型的参数,getter和setpXMPater方法命名的规范是以get和set开头,如下: private String Success; public String ...

  3. sql如何处理null值_如何正确处理SQL中的NULL值

    sql如何处理null值 前言 (Preface) A friend who has recently started learning SQL asked me about NULL values ...

  4. mysql两个空值相同吗_你知道mysql中空值和null值的区别吗

    前言 最近发现带的小伙伴写sql对于空值的判断方法不正确,导致程序里面的数据产生错误,在此进行一下整理,方便大家以后正确的判断空值.以下带来示例给大家进行讲解. 建表 create table tes ...

  5. python 如果没有该key值置为空_没有键时Python字典的默认值

    from collections import Counter histogram = Counter() ... histogram[n] += 1 对于数字以外的值,请查看collections. ...

  6. java build path entries 为空_同事的代码简直没法看,我来教你如何更优雅的设计Java异常...

    点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据自己的 ...

  7. java 多态判断非空_跳槽涨薪季面试题之java基础(一)

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 为迎接金九银十跳槽涨薪季,小编汇总了java精编版面试题,大概从java基础.java8特性.多线程.spring.springboot. ...

  8. 如何判断map为空_在Java中如何优雅地判空

    来自:李良逸 链接:http://blog.imuxuan.com/archives/86 判空灾难 作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢 NullPo ...

  9. Java解决空引用_在java中检查空引用的乐观方法

    本问题已经有最佳答案,请猛点这里访问. 任何Java精通/专家都能告诉我,在使用null来避免EDCOX1×0时,检查空引用或对象的乐观方式是什么? 在我的代码中,我有100多个字段,其中大部分是为了 ...

最新文章

  1. redhat7操作系统安装
  2. Git:如何从远程源主服务器更新/签出单个文件?
  3. 谈谈Javascript闭包
  4. Leetcode389
  5. php语言指针的初始化定义,指针变量的初始化,C语言指针变量初始化详解
  6. CentOS7安装Java,java高级面试笔试题
  7. Mastering The Mix Total Bundle 2021 Mac - 混音插件合集
  8. Hadoop 快速入门
  9. 计算机硕士系统毕业论文答辩ppt,计算机硕士论文答辩ppt
  10. AndroidKK4.4 Power key电量屏幕时button light先亮LCD后亮的卡顿问题分析
  11. pycharm如何下载库?
  12. python selenium中析构方法报错sys.meta_path is None, Python is likely shutting down如何解决?
  13. Mat类型中的CV_8UC3、CV_32FC3以及对应的迭代器模板参数Vec3b,Vec3f的一点自己的理解
  14. 中国千家主要规划设计勘察单位
  15. T检验 ANOVA
  16. canvas之刮刮乐
  17. 微信小程序学习笔记(三)——两名片小程序实例
  18. 维京传奇高清5K动态mac壁纸
  19. 信息学奥赛一本通T1451:棋盘游戏
  20. 中国联通再次下调国际漫游资费 最高降幅达90.42%

热门文章

  1. Dijkstra算法与python实现
  2. matlab计算图像的亮度和对比度
  3. 程序员如何学习新的技术
  4. 微软十款免费服务器工具任你挑(附下载)
  5. 人工智能文本分析(AITextAnalysis)
  6. “知识屏蔽“是什么?阅读知识屏蔽的书有什么好处?
  7. 代码发芽网:无需插件支持Blog代码高亮,支持近百种编程语言
  8. 技术至简-13:一张图看清1G/2G/3G/4G/5G/6G频谱的演进
  9. 路由器、局域网、广域网了解
  10. 首届昇腾计算产业峰会成功举办,AITISA与华为联合发布“白皮书”