从您的意见中,您似乎正在寻找使用布尔包装器类的“最佳做法”.但是真的没有任何最佳做法,因为使用这个类开始是一个坏主意.使用对象包装器的唯一原因是在绝对必须的情况下(例如当使用

Generics时,即在HashMap< String,Boolean>等中存储布尔值).使用对象包装器没有什么大不了的缺点,最引人注目的是它可以打开NullPointerExceptions.

Does it matter if ‘!’ is used instead of .equals() for Boolean?

这两种技术都将受到NullPointerException的影响,所以在这方面并不重要.在第一种情况下,布尔值将为unboxed,成为其各自的布尔值,并与之正常比较.在第二种情况下,您正在从Boolean类调用一个方法,即the following:

public boolean equals(Object obj) {

if (obj instanceof Boolean) {

return value == ((Boolean)obj).booleanValue();

}

return false;

}

无论哪种方式,结果是一样的.

Would it matter if .equals(false) was used to check for the value of the Boolean checker?

以上,不.

Secondary question: Should Boolean be dealt differently than boolean?

如果绝对必须使用布尔类,则在执行任何比较之前始终检查null.例如.,

Map map = new HashMap();

//...stuff to populate the Map

Boolean value = map.get("someKey");

if(value != null && value) {

//do stuff

}

这将工作,因为Java short-circuits有条件的评估.您也可以使用三元运算符.

boolean easyToUseValue = value != null ? value : false;

但严重的是,只是使用原始类型,除非你被迫不要.

java布尔值 比较_java – 如何比较布尔值?相关推荐

  1. java布尔值默认值是_Java中的布尔值和布尔值的默认值

    Java中boolean(原始)和boolean(原始包装器)的默认值是什么? Boolean(对象)的默认值为null. Boolean(原始)的默认值为false. 请添加官方源链接 任何Obje ...

  2. java开根号函数_Java中真的只有值传递么?

    原创: ITwalking 转载于公众号[ 编程大道] (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法 ...

  3. python中long类型的取值范围_java基本数据类型取值范围

    在JAVA中一共有八种基本数据类型,他们分别是:byte.short.int.long.float.double.char.boolean 整型 其中byte.short.int.long都是表示整数 ...

  4. 类型的取值范围_Java基础类型取值范围,从基础的理解加深记忆

    Java有8种基础类型,但是你可能常常会忘记他们的取值范围.而这主要是由于你再依靠默记这些类型的取值范围,而不是从根本上理解. 举例 byte占1个字节,8给比特位,它的取值范围是:-128 ~ 12 ...

  5. java 值对象_java 中设计模式(值对象)的实例详解

    java 中设计模式(值对象)的实例详解 应用场景:在Java开发时,需要来回交换大量的数据,比如要为方法传入参数,也要获取方法的返回值,该如何能更好的进行数据的交互?这个时候就需要用到我们的值对象设 ...

  6. java arraylist初始大小_Java - ArrayList默认初始值

    当您在Java中创建Integer类型的数组列表时,默认值是什么?我需要检查一个数组列表是否已满,然后我将获取数组的大小,然后获取最后一个索引处的值,并检查它是否为默认值.Java - ArrayLi ...

  7. java integer的范围_java integer的取值范围是什么?

    Java Integer取值范围 Integer类取值和 int 类型取值一致,取值范围是从-2147483648 至 2147483647 ,包括-2147483648 和 2147483647. ...

  8. java枚举可以int值不_java – 如何通过int值迭代枚举?

    我有一个编写枚举"工作日"的任务,其中常量有多个参数. Enum类型是否有一个简短的方法来迭代它的属性(1,2,3,4,5,6,7 – 来自我的代码)或者我必须编写另一种数据类型来 ...

  9. java gui 按键 数组_java GUI分配数组值

    好的,所以这是一个非常基本的例子.它需要更多的工作和优化,但应该让你朝着正确的方向前进 import java.awt.Color; import java.awt.Dimension; import ...

最新文章

  1. C将十六进制数字字符串转成数字
  2. 如何利用计算机完成科研项目,承担科研项目情况怎样填写
  3. vi-vim (十五):显示与设置选项
  4. linux-dd命令,dd命令_Linux dd 命令用法详解:复制文件并对原文件的内容进行转换和格式化处理...
  5. Hibernate二级缓存以及ehcache的搭建配置
  6. Java 图片URL转Base64编码
  7. 猿创征文 | 国产数据库之南大通用数据库详解安装和使用
  8. factorial函数
  9. 网络访问计算机无法访问,无法访问,您可能没有权限使用网络资源的解决方法...
  10. 详解示波器的三个主要参数:采样率,存储深度,带宽
  11. 二分法查找——绝对值最小的数
  12. js小学生图区_多种方式实现js图片预览
  13. C语言简易程序设计————7、输出特殊图案
  14. css之透明度和外发光
  15. Linux 运维之路001
  16. Python爬取哔哩哔哩弹幕并且造词云图简单版!!!
  17. 软件相貌测试准确吗,相貌测试(史上最准的颜值测试)
  18. 聊一聊几种常用web图片格式:gif、jpg、png、webp?大厂必问
  19. Android - 谷歌的一剂药
  20. 【Hadoop】MapReduce 的应用场景

热门文章

  1. [AI创造营]Wechaty实用小工具---九宫图爱心生成器~
  2. LC: 面试题 01.02. 判定是否互为字符重排
  3. 关于两种常用特殊字符判断方法
  4. 终于比IceSword底层了
  5. 【音视频数据数据处理 10】【PCM篇】将PCM转为WAV格式音频
  6. MacBook Pro装W7双系统解决方案
  7. 2005年度最佳照片----幅幅经典
  8. 关于二维码方面的测试点梳理
  9. 我是落月,很高兴来到CSDN,谢谢CSDN,谢谢大家。我是一名草根网络技术人员,开发程序猿,运维工程狮,网络安全工程狮,略懂黑帽,渗透,压力测试。
  10. 视频合并软件把多个视频合并为一个视频使用方法