[英]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 语言规范需要它。
如果
r
是Boolean
类型的引用,则拆箱转换会将r
转换为r.booleanValue()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.