这个运算符叫什么,它有什么用途?

5
我最近在研究Groovy时发现了这个神奇的运算符:<=>。
Groovy的Elvis操作符?.和?:让我非常满意,我现在经常使用它们,并且非常希望它们能够出现在Java中。对于这个新的运算符,我只找到了reference。它似乎使比较器变得更加容易。我的问题是它如何处理空值以及如何比较不可比较的对象。这个运算符有一个名称吗?我在谷歌上找不到它。

这不是一个Java问题...移除虚假标签。 - Stephen C
1
@Stephen 没问题,我标记为Java,因为Groovy是超集。不确定是否有Java中我可能错过的东西。 - Scott
4个回答

6

5

2

名称: 太空船运算符

使用的方法: a.compareTo(b) //其中a和b是使用的变量

类: java.lang.Comparable

这个链接更详细地解释了这个运算符。点击这里


1

就像其他人提到的那样,它被称为太空船运算符。这是我的测试:

def a
def b

println 1 <=> 0                 // 1
println 0 <=> 1                 // -1
println 1 <=> a                 // 1
println b <=> 0                 // -1
println a <=> b                 // 0
println "abc" <=> "def"         // -1
println "abc" <=> 1             // throw exception: java.lang.ClassCastException

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接