繁体   English   中英

如何让对象像布尔值一样使用 booleanValue()?

[英]How can I make an Object utilize booleanValue() like Boolean?

在 Java 中,布尔包装类包含一个名为booleanValue()的方法,该方法返回布尔对象值的布尔基本类型。

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

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

我发现 Boolean Object 类只实现了两个接口: Comparable<Boolean>Serializable 由于这些都不包含booleanValue()方法,我不明白 Java 编译器如何识别 Boolean Object 类中的booleanValue()方法并以它的方式使用它。 我尝试在我的自定义 Object 类中简单地创建一个booleanValue()方法,并尝试像布尔值一样使用 Object,但无济于事。

有任何想法吗?

你问题中的关键句子是

被编译器识别

除非你自己编写编译器,否则你不能让编译器做任何事情。 booleanValue()工作的事实是因为Java 语言规范需要它。

如果rBoolean类型的引用,则拆箱转换会将r转换为r.booleanValue()

方法booleanValuejava.lang.Boolean声明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM