gpt4 book ai didi

java - 如何使对象像 boolean 值一样使用 booleanValue()?

转载 作者:行者123 更新时间:2023-11-30 09:09:17 24 4
gpt4 key购买 nike

在 Java 中, boolean 包装类包含一个名为 booleanValue() 的方法返回 boolean 对象值的 boolean 原始类型。

对此我感兴趣的是,Java 编译器识别这个 booleanValue() 方法,并在需要 boolean 值时每当使用 boolean 值时自动添加它;例如,如果您编写类似 if (something) 的 if 语句其中 something是一个 boolean 对象,然后编译代码并反编译结果,你会看到代码现在是if (something.booleanValue()) .这几乎就像编译器认识到 Boolean Object 类具有 booleanValue() 方法这一事实并自动将其以与它可以添加 toString() 相同的方式放置。到字符串加法表达式中添加的任何对象的末尾。

所以,我的问题是如何在自定义对象类中使用它?有没有一种方法可以使用booleanValue() 来创建对象类?或 intValue()编译器以与 Boolean 和 Integer 等包装类相同的方式识别方法?

我发现 boolean 对象类只实现了两个接口(interface):Comparable<Boolean>Serializable .由于这些都不包含 booleanValue()方法,我不明白 Java 编译器如何识别 booleanValue() Boolean Object 类中的方法并按照它的方式使用它。我尝试简单地制作一个 booleanValue()我的自定义 Object 类中的方法并尝试将 Object 用作​​ boolean 值,但无济于事。

有什么想法吗?

最佳答案

你问题中的关键句子是

that is recognized by the compiler

除非您编写自己的编译器,否则您无法让编译器做任何事情。 booleanValue() 起作用的事实是因为 Java Language Specification requires it.

If r is a reference of type Boolean, then unboxing conversion converts r into r.booleanValue()

The method booleanValue is declared in java.lang.Boolean .

关于java - 如何使对象像 boolean 值一样使用 booleanValue()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100195/

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