1

嘿,我想了解 GWT 展示中的一些代码,但我不确定以下代码的作用。有人可以解释一下,更重要的是,解释一下为什么语法会这样工作吗?我没有见过类似的东西,我不知道它为什么/如何工作。谢谢!

public int compareTo(ContactInfo o) {
  return (o == null || o.firstName == null) ? -1 : -o.firstName.compareTo(firstName);
}
4

5 回答 5

7

意思是:如果条件为真,return -1则 ,否则return -o.firstName.compareTo(firstName);

它是if-then-else.

之后?是如果条件为真该怎么办

之后:是如果条件为假怎么办

于 2013-09-05T16:07:33.470 回答
0

我假设它是'?和':'让你感到困惑。它只是 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 可以(并且应该)被省略)

于 2013-09-05T16:10:47.560 回答
0

此方法来自 Comparable 接口,在这种情况下特定于 ContactInfo。ContactInfo 的定义应该是这样的

public class ContactInfo  implements Comparable<ContactInfo >{
    ...
}

这句话 :

contact.compareTo(otherContact);

contact如果小于必须返回 -1 otherContact(如果firstNameofcontact按字母顺序小于firstNameof otherContact),如果contact等于 则返回0 otherContact,如果大于则返回 1。

于 2013-09-05T16:15:37.917 回答
0

That is called the ternary operator.

boolean value = (condition) ? true : false;

This blog post explains what it is and how to use it well.

http://alvinalexander.com/java/edu/pj/pj010018

于 2013-09-05T16:15:09.657 回答
0

如果 o 或 o.firstName 为 null,则返回 -1;否则返回 o.firstName 与 firstName 相比的负值。

于 2013-09-05T16:08:14.300 回答