java - 如何根据 "? :"语句重写多个三元 "if"?

标签 java

我的理解是:

value = (a > b) ? a : b;

等同于:

if (a > b)
  value = a;
else
  value = b;

但我无法理解这意味着什么:

编辑(我之前使用的示例不好,这是另一个示例的真实代码):

Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
      : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
          : analytics.newTracker(R.xml.ecommerce_tracker);

如何用 ifelse ifelse 重写最后一个方程?

最佳答案

您需要第二个条件才能使该三元表达式发挥作用。

value = (a > b) ? a : (b > c) ? c : d;

那么它就会变成:

if (a > b) {
    value = a;
} else if (b > c) {
    value = c;
} else {
    value = d;
}

就您而言:

if (trackerId == TrackerName.APP_TRACKER) {
    t = analytics.newTracker(PROPERTY_ID);
} else if (trackerId == TrackerName.GLOBAL_TRACKER) {
    t = analytics.newTracker(R.xml.global_tracker);
} else {
    t = analytics.newTracker(R.xml.ecommerce_tracker);
}

资源:

关于java - 如何根据 "? :"语句重写多个三元 "if"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23402960/

相关文章:

java - 如何检查表是否包含 JPA - Criteria API 中的列?

java - 什么是NullPointerException,我该如何解决?

java - Tomcat7 Maven 插件和 JaCoCo

java - IconImage 未显示在 jButton 上

java - 如何在 hibernate 中使用外键和连接表以及单向进行一对一关联

java - 在没有线程阻塞的情况下回调到主线程(Java)

java - Jackson - 递归解析为 Map<String, Object>

java - ActionBar 中的 Home Up 按钮不起作用

JAVA StAX 提取

java - 如何在 JBoss 6.3 EAP 上部署 Spring 管理的 JPA 应用程序