gpt4 book ai didi

java - 在 Java 中 boolean 类型转换没用吗?

转载 作者:行者123 更新时间:2023-12-04 04:26:11 27 4
gpt4 key购买 nike

我看到 boolean (boolean) 的显式转换语法在语法上是合法的,但我想不出它的用途。相应的 Boolean 对象——或者更确切地说是在 boolean 和 Boolean 之间来回转换——由自动装箱处理。所以它看起来像是编译器的无用语言工件。是否有我缺少的功能场景?

最佳答案

当重载方法被调用时,它会有所作为。由于要调用的方法由参数的静态类型决定(请参阅 JLS, §15.12.2 ),因此强制转换 Booleanboolean反之亦然可以更改调用的方法:

class Ideone {
public static void main (String[] args) {
final Boolean b = true;
foo((boolean) b); // prints out "primitive"
foo(b); // prints out "wrapper"

}

public static void foo(boolean b) {
System.out.println("primitive");
}

public static void foo(Boolean b) {
System.out.println("wrapper");
}
}
Ideone Demo
请注意,从 Boolean 转换时至 boolean , NullPointerException Boolean时可能会发生值为 null .
然而,是否(广泛)使用或应该使用这种行为是另一个争论。
rzwitserloot展示了另一个案例 booleanObjecttheir answer .虽然 rzwisterloot 的情况看起来很相似,但底层机制是不同的,因为来自 Object 的低迷。至 boolean在 JLS 中单独定义。此外,它很容易出现 ClassCastException (如果 Object 不是 Boolean )以及 NullPointerException (如果 Objectnull )。

关于java - 在 Java 中 boolean 类型转换没用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66430308/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com