【问题标题】:What does the "?" key do in Java? [duplicate]“?”是什么意思? Java的关键是什么? [复制]
【发布时间】:2014-12-19 13:39:31
【问题描述】:

我一直在尝试用谷歌搜索它,但谷歌搜索的关键是“?”并没有那么好。 我真的很想知道它的作用以及何时使用它。

谢谢!

我已经看过几次了,但这是我刚刚看到的一个例子

String name = perms.calculateRank().getColor() + player.getName();
//This is a custom ranking system ^
player.setPlayerListName(name.length() > 15 ? name.substring(0, 16) : name);
player.setDisplayName(name + ChatColor.RESET);
Chat.sendMessage(player, "Tab Name Set");

【问题讨论】:

  • 发布使用该符号的代码将有助于识别其含义。
  • ? = ??? “你的问题是什么?”
  • 我用谷歌搜索“问号运算符 java”——猜猜我发现了什么。
  • @MarkoTopolnik 好的,但是如果您建议提问者应该刚刚通过 Google 找到答案——他们的问题中没有任何内容表明他们知道它被称为“操作员”,并且有可能有很多人不知道? 是一个“问号”。
  • @ajb 如果那是真的,那么我设法用四个词教 OP 三个新东西 :)

标签: java


【解决方案1】:

这是一个三元运算符。在 Java 中,它被称为 Conditional Operator。这是一种编写简写的简单if..else 语句的方法。例如:

if (a == b) {
   c = 123;
} else {
   c = 456;
}

等同于:

c = a == b ? 123 : 456;

【讨论】:

    【解决方案2】:

    它被称为三元运算符,它是唯一接受3 操作数的运算符。在更好的意义上,它是表示较短格式的条件运算符

    一般语法

    boolean expression ? value1 : value2
    

    你的例子:

     player.setPlayerListName(name.length() > 15 ? name.substring(0, 16) : name);
    

    一样
      if( name.length() > 15)
        player.setPlayerListName(name.substring(0, 16));
      else
        player.setPlayerListName(name);
    

    【讨论】:

      【解决方案3】:

      如果someBoolean 为真,则三元运算符someBoolean ? x : y 计算为x,否则计算为y

      【讨论】:

        【解决方案4】:

        它也用于通配符泛型。

        public List<?> getBizarreList();
        

        【讨论】:

          猜你喜欢
          • 2012-08-13
          • 1970-01-01
          • 2011-07-11
          • 1970-01-01
          • 2018-12-06
          • 1970-01-01
          • 2020-10-27
          • 2015-07-15
          • 2018-07-17
          相关资源
          最近更新 更多