慎用Boolean

2024-02-04 20:08
文章标签 boolean 慎用

本文主要是介绍慎用Boolean,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java是面向对象,但是并不是全部面向对象就是好的。

Java中有个Boolean对象,对应boolean类型的数据,两者几乎相似,

但是有一点不同,就是Boolean是对象,对象可以赋值为null,而boolean数据不可以。

有段代码是这么写的

public Boolean checkPermission(String name,String oper){

Boolean result = null;

if(name!=null){

//check here

}

return result;

}

从编译上完全没问题,貌拟返回null也很正常,但是这个还要看是如何应用。

如果将这个方法的结果直接作为boolean来应用,那么在name为null时,就会出现异常。

例如

System.out.println(checkPermission(null,"test")?"yes":"no"))

代码将出空异常。


所以感觉Boolean对象有些累赘,没必要存在,反而会引起误解。如果使用boolean类型,不管是

true还是false,总不会出异常。

类似的还有Integer,Float,Double之类与标准数据类型同名的类。


这篇关于慎用Boolean的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678668

相关文章

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Python多重继承慎用的地方

《Python多重继承慎用的地方》多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录前言多重继承要慎用Mixin模式最后前言在python中,多重继承是一种强大的功能,它允许一个

【JavaScript】基本数据类型与引用数据类型区别(及为什么String、Boolean、Number基本数据类型会有属性和方法?)

基本数据类型   JavaScript基本数据类型包括:undefined、null、number、boolean、string。基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值。 1)基本数据类型的值是不可变的 任何方法都无法改变一个基本类型的值,比如一个字符串: var name = "change";name.substr();//hangconsole.log

BiometricPrompt.Builder.setDeviceCredentialAllowed(boolean)方法过时了,怎么破。

Android R中已经将该API setDeviceCredentialAllowed() 标记为@Deprecated,即API=30开始不推荐使用该API。 先来看看官方API怎么说? 明确说,请使用setAllowedAuthenticators(int)代替。 怎么用,上图API已经说的很清晰,举个栗子 int authenticators = BiometricMana

el-checkbox 状态切换,将boolean转换成1遇到的问题

项目场景: 项目中有一个需求,通过el-checkbox切换来控制控件的显示和隐藏,同时,切换的状态要上传后台,true为1.false为0 问题描述: 通过v-model去实现业务场景,结果没有效果, 原因分析: v-model一旦绑定过后,数据类型无法改变,所以无法将boolean转换为1或0 解决方案: 之后通过@change监听时间来实现 handleCheckAll

eslint工具编程“ Unnecessary use of boolean literals in conditional expression” 错误的解决方案

今天快下班提交代码时碰到这个很诡异的问题,如下图 这是我的代码报错的地方 很明显是eslint工具检测出来的,我们必须用它的代码规范来编程。后来查了下eslint官方文档,对其解释是: 当存在更简单的替代方案时,不允许三元运算符(不需要 - 三元) 也就是说我这种写法会显得啰嗦 改变这两行代码的写法 就ok了 详细解释说明传送

java.lang解析Boolean类

Boolean类: public final class Booleanextends Objectimplements Serializable, Comparable<Boolean>    字段摘要static BooleanFALSE           对应基值 false 的 Boolean 对象。static BooleanTRUE           对应基值 true 的

BOOL、bool、Boolean、NSCFBoolean 的区别

BOOL、bool、Boolean、NSCFBoolean 的区别 BOOL、bool、Boolean、NSCFBoolean 的区别 BOOL、bool、Boolean、NSCFBoolean 的区别 NameTypedefHeaderTrue ValueFalse ValueBOOLsigned charobjc.hYESNObool_Bool (int)stdbool.ht

JavaScript各种基础对象:(3)包装对象之Boolean对象

目录 1 Boolean对象 1.1 概述 1.2 Boolean实例对象的布尔值 1.3 Boolean函数的类型转换作用 1 Boolean对象 1.1 概述 Boolean对象是JavaScript的三个包装对象之一。作为构造函数,它主要用于生成布尔值的包装对象的实例。 var b = new Boolean(true);typeof b // "object"b.va

[递归和栈] Boolean Expressions

描述 The objective of the program you are going to produce is to evaluate boolean expressions as the one shown next: Expression: ( V | V ) & F & ( F | V ) where V is for True, and F is for False. Th