gpt4 book ai didi

java - 为什么 Java Boolean 实现了 Comparable?

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

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

6 个月前关闭。




Improve this question




在 Java 中,运算符 < , > , >=<=未为原始 boolean 定义类型。
但是,对应的包装类Boolean工具Comparable .
即:true > false是一个错误,但是 Boolean.TRUE.compareTo(Boolean.FALSE) > 0很好。
怎么来的?
语言设计者改变主意了吗?
那为什么要保持语无伦次的行为呢?
尽管随意,但我可以想到为 boolean 值定义总顺序的优点。
有什么缺点吗?

最佳答案

编程语言不是数学结构。它们是跨越多年和许多不同人员的复杂项目。因此,他们会受到意见、遗产、分歧、炒作周期、其他语言的影响、沟通不畅,不幸的是有时也会犯错误和愚蠢。您可能会争辩说,关于一种语言的大多数决定实际上都是武断的。
你的问题是完全有效的:为什么会这样?不幸的是,不询问做出相关提交的人他们还记得多少并不是一个真正可行的选择。所以你的猜测和其他人的一样好。
事情就是这样,但你有权有自己的意见。可悲的是,在某些情况下,这种不一致会令人沮丧,以至于人们放弃一种语言并创建一种新语言。但由于计算机是物理的、有限的东西,任何新语言也将是不完美的和自以为是的。
如果你问我,在 boolean 上有一个总订购量是个好主意——它不会伤害任何人,而在某些(虽然非常狭窄)的情况下它可以提供一些有限的好处。但是,Java 还存在更多、更大的问题。就目前而言,我认为 Oracle 不会冒险通过改变这种行为来破坏任何现有程序。

关于java - 为什么 Java Boolean 实现了 Comparable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66922276/

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