请只是我的好奇心,可以用来(code example see at line 38th(code edited))布尔(布尔)值切换
Boolean bol = true;
Boolean bol1 = !bol;
我的问题是
- 其应有的方式,或者是有(任何)可能不足,问题为什么要避免使用
- 是正确的结果是相同的布尔和布尔值
- 是否有另一种Java数据类型,其中可能切换表达式,逻辑l值
请只是我的好奇心,可以用来(code example see at line 38th(code edited))布尔(布尔)值切换
Boolean bol = true;
Boolean bol1 = !bol;
我的问题是
是的,这是正确的方法,它可以同时处理布尔和布尔值。
你的“另一种数据类型”可能是整数,用于存储布尔值为0和1,但我不知道谁会这样做,如果我们有真正的布尔值。
在那里,你可以使用这个:
int a = 1;
int negated = 1-a;
或更一般的,你可以通过'(a + 1)%n'遍历一个'n'选项列表。 –
第二个指令将抛出一个NullPointerException如果bol
为null。如果你确定布尔值不为空,那么没问题。
是的,它可以。
布尔值可以包含第三个值“null”,布尔值只能包含true
或false
。
如果你有一个函数
public static void hi(boolean b) {...};
public static void main(String[] args){
Boolean b = null;
hi(b); // ... throws a NullPointerException at Runtime only
}
这就是所谓的自动装箱,因为Reflection
需要与包真正的类。
思考也有
Void (realy wired in real code)
Integer
Float
Enum (sometimes)
反射与布尔的存在有什么关系?布尔值在反射之前。主要是因为集合只存储对象,并且因为有时需要一个可空布尔值。 –
'boolean []'也是一个集合 - 在这里没有明确需要'Boolean',即使集合可以包含一个Container来仅存储布尔值。但是你不能用'hi(int b)'中的'Boolean'来识别'hi'。 –
boolean []是一个数组。而布尔是只存储布尔值的标准容器。正如我所说,布尔从Java的一开始就存在,当时反射还没有存在。 –
你到底想达到什么目的?我不明白你在问什么。 –
咦?问题在哪里? – Oleksiy
在第58行没有这样的代码。 – Eric