嘿,我想了解 GWT 展示中的一些代码,但我不确定以下代码的作用。有人可以解释一下,更重要的是,解释一下为什么语法会这样工作吗?我没有见过类似的东西,我不知道它为什么/如何工作。谢谢!
public int compareTo(ContactInfo o) {
return (o == null || o.firstName == null) ? -1 : -o.firstName.compareTo(firstName);
}
意思是:如果条件为真,return -1
则 ,否则return -o.firstName.compareTo(firstName);
它是if-then-else
.
之后?
是如果条件为真该怎么办
之后:
是如果条件为假怎么办
我假设它是'?和':'让你感到困惑。它只是 if 语句的简写符号,如下所示:expression ? then-value : else-value
所以在你的情况下,它可以写成
public int compareTo(ContactInfo o) {
if (o == null || o.firstName == null)
then return -1;
else return -o.firstName.compareTo(firstName);
}
(当然 else 可以(并且应该)被省略)
此方法来自 Comparable 接口,在这种情况下特定于 ContactInfo。ContactInfo 的定义应该是这样的
public class ContactInfo implements Comparable<ContactInfo >{
...
}
这句话 :
contact.compareTo(otherContact);
contact
如果小于必须返回 -1 otherContact
(如果firstName
ofcontact
按字母顺序小于firstName
of otherContact
),如果contact
等于 则返回0 otherContact
,如果大于则返回 1。
That is called the ternary operator.
boolean value = (condition) ? true : false;
This blog post explains what it is and how to use it well.
如果 o 或 o.firstName 为 null,则返回 -1;否则返回 o.firstName 与 firstName 相比的负值。