当前位置: 首页 > 面试题库 >

JAVA中的布尔对象和布尔变量问题

司马祖鹤
2023-03-14
问题内容

我声明一个布尔变量。例如,Boolean dataVal=null;
现在,如果我执行以下代码段:

if(dataVal)
    System.out.println("\n\NULL value in dataVal: "+dataVal);
else
    System.out.println("\n\nvalue in dataVal: "+dataVal);

我懂了NullPointerException。好吧,我知道它很明显,但是我需要知道其背后的原因。


问题答案:

当您评估Boolean对象的布尔值时,Java会将其取消装箱(自装箱功能,自1.5开始)。因此,实际的代码是:dataVal.booleanValue()。然后它抛出NullPointerException。对于任何装箱的值,将空对象拆箱将引发此异常。

在1.5之前,您必须手动将值拆箱:if (dataVal.booleanValue())所以它更明显(也更加冗长:)



 类似资料:
  • 照例,每个类型的值都有一个相应类型的变量。C++中的布尔类型叫做bool。布尔变量的使用和其他类型类似,如: bool fred; fred = true; bool testResult = false; 第一行是一个简单的变量声明;第二行是个赋值;第三行是声明和赋值的组合,叫做初始化。 前面提到过,比较操作符的结果是布尔值,所以可以将结果保存在布尔变量中,如: bool evenFlag =

  • 问题内容: 众所周知,Python具有对象的布尔值:如果一个类具有一个方法,则该方法的每个实例恰好返回0的值都将被评估为布尔值(例如,空列表)。 实际上,每个可迭代的空自定义对象都被评估为好像它出现在布尔表达式中一样。 现在假设我有一个带有attribute的类。我如何定义它的真值,这样,也就是说,它会进行评估,并以其他方式? 例如: 因此,应打印。 问题答案: 请参阅Python文档。

  • 本章节我们学习布尔值,了解什么是布尔值,在 Ruby 中布尔值的基本用法。 1. 什么是布尔值 布尔值是真 True 或假 False 中的一个。动作脚本也会在适当时将值 True 和 False 转换为 1 和 0。布尔值经常与动作脚本语句中通过比较控制脚本流的逻辑运算符一起使用。——官方定义 布尔值代表着真和假,在代码上,通常显示为true和false。 2. 在 Ruby 中使用布尔值 在

  • 问题内容: 谁能说出Java 中布尔值的位大小? 问题答案: 它取决于虚拟机,但是很容易将代码从类似的问题改编成关于Java中字节的问题: 重申一下,这取决于VM,但是在运行Sun的的Windows笔记本电脑上,我得到以下结果: 这表明,Sun的JVM基本上可以将布尔值打包成一个字节。

  • 我被一件简单的事情困住了。我有一个名为“tags”的布尔值数组能够通过布尔值访问数组的每个元素对我来说很重要: 我传入trackTags数组并将布尔值赋给它(比如说[true,true,true,false])。因此,当我调用trackTags[0]时,我得到了“true”但是,当我打印“Energy”(能量)时,它应该与trackTags(0)相同,该值始终为false。我知道booleans

  • If set to true, config file values of on/true/yes and off/false/no get converted to boolean values automatically. This way you can use the values in the template like so: {if #foobar#} ... {/if}. If f