Java语法解释

时间:2013-09-05 16:05:48

标签: java gwt syntax

嘿所有我正在尝试理解GWT展示中的一些代码,我不确定以下代码是做什么的。有人可以解释它,更重要的是,解释为什么语法按照它的方式工作?我没有看到类似的东西,我不知道为什么/它是如何工作的。谢谢!

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

5 个答案:

答案 0 :(得分:7)

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

它是if-then-else的快捷语法。

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

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

答案 1 :(得分:0)

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

答案 2 :(得分: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);
}

(当然其他的可以(而且应该被省略)

答案 3 :(得分:0)

这被称为三元运算符。

boolean value = (condition) ? true : false;

这篇博客文章解释了它是什么以及如何使用它。

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

答案 4 :(得分:0)

此方法来自Comparable接口,在本例中特定于ContactInfo。 ContactInfo的定义应该是这样的

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

句子:

contact.compareTo(otherContact);

如果contact小于otherContactfirstName contact的字母小于firstName otherContact,则必须返回-1 ,如果contact等于otherContact则为0,如果大于。{/ p>则为1