所以我有这个方法:
class A(){
private Boolean Flag;
public java.lang.Boolean getFlag()
{
return this.Flag;
}
public java.lang.Boolean setFlag(Boolean Flag)
{
this.Flag = Flag ;
}
}
classB(){
boolean navalFlag = fancyObj.getFlag()
form.setNavalFlag(navalFlag?"Y":"N";
}
数据库返回null,并将标志
设置为null。
什么是我可以100%避免NPE的万无一失的方法?我知道从这里可以看出,Boolean
toBoolean
casting不是一个保证
更新:在代码中,NPE被抛出fancyObj。getFlag()
。。。这对我来说毫无意义。我预计NPE会被抛出。setNavalFlag
改变你的方法
public java.lang.Boolean getFlag()
{
return this.Flag;
}
比如
public java.lang.Boolean getFlag()
{
(Flag==null) ? Boolean.FALSE : Flag;
}
Boolean navalFlag = fancyObj.getFlag()
form.setNavalFlag((navalflag != null && navalFlag) ? "Y" : "N");
编辑的编辑,因为我错误地理解了你的评论:
参见我对评论的回答:boolean navalFlag=fancyObj。getFlag()
会自动转换为布尔值navalFlag=fancyObj。getFlag()。booleanValue()
什么是我可以100%避免NPE的万无一失的方法?
一个简单的方法是显式检查null
,并且不要尝试取消对布尔值的装箱,除非您知道它不是
null
。
以您当前的代码为例:
boolean navalFlag = fancyObj.getFlag()
这将尝试取消布尔值的装箱。如果是
null
,你会得到一个NPE。
以下修改不会有此问题:
Boolean navalFlag = fancyObj.getFlag()
form.setNavalFlag((navalFlag != null && navalFlag) ? "Y" : "N");
我有一个布尔方法正在对字符串进行一些错误检查。我有一个int类常量叫“numwords”=8。我将一个字符串传递给布尔方法,在该方法中,我使用.split和.length对字符串进行单词计数。一个名为“words”的int计算字符串中的单词数。完成之后,我要执行一个if语句,比较单词和数字单词。如果它们的数目相等,则返回true,否则为false。我试过==和.等于,但都没用。有什么想法吗? 我试
我正在从事一项与react基于本机应用程序的用户管理相关的任务。在他们成功注册为用户后,我添加了一个存储布尔值的数据,并将其命名为emailVerifiedAccount(如果他们成功注册,这是存储的数据,如果他们单击发送给他们的电子邮件验证链接,则表明他们是否为验证用户)。在登录屏幕中,我想检查我在onAuthStateChanged中从firestore获得的布尔值,并且仅当我获得的email
我想将有效负载架构添加到环境变量,以便我可以根据架构验证响应负载。 我的环境变量定义如下: 但是,我无法在我的邮递员测试代码中访问此环境变量。我尝试过通过以下方式访问它: 但是,这将返回null。如何访问使用postman创建的环境变量。我实现这一点的方式与http://blog.getpostman.com/2017/07/28/api-testing-tips-from-a-postman-p
问题内容: 为什么我返回的是JavaScript函数中的布尔变量,为什么在调用函数中将其检测为字符串,但是如果我返回布尔文字,则调用函数会将其检测为布尔值? 因此,例如: 问题答案: 您无需声明状态变量。 因此,全局一个()被覆盖。 但是,[HTML5规范]将该属性定义为DOMString: 因此,它具有一个设置器(公开的或内部的),用于存储字符串化的值。 要解决此问题,只需使用语句声明您的局部变
这是一个布尔方法,是我作业的一小部分。我想根据输入和记录之间是否匹配来返回true或false。我想我遇到了语法问题。 这是该方法的代码,但始终有红线指示我应该在代码中添加return,否则将该方法更改为void。但我已经在if语句中添加了return true。
照例,每个类型的值都有一个相应类型的变量。C++中的布尔类型叫做bool。布尔变量的使用和其他类型类似,如: bool fred; fred = true; bool testResult = false; 第一行是一个简单的变量声明;第二行是个赋值;第三行是声明和赋值的组合,叫做初始化。 前面提到过,比较操作符的结果是布尔值,所以可以将结果保存在布尔变量中,如: bool evenFlag =