慎用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

相关文章

【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

java慎用String.substring(int start, int end)

1:问题的抛出         今天在安卓项目中使用后台线程操作一个大文件,分块读取文件中的所有内容,每次操作加载一个小块进行解析,解析到指定的文本内容之后会加载并常驻内存中,即使所有我解析到的文本内容被加入到内存中也不会很大,这样不会造成内存泄露问题。原理如此,但是最终依然出现oom。 2:问题的排查 仔细检查之后发现线程中所有的产生的对象都已经在操作结束之后回收(即:生成的对象没有引用)

LeetCode|2331. Evaluate Boolean Binary Tree

. 题目 You are given the root of a full binary tree with the following properties: Leaf nodes have either the value 0 or 1, where 0 represents False and 1 represents True. Non-leaf nodes have eithe