【问题标题】:Java <> operator descriptionJava <> 运算符说明
【发布时间】:2014-04-17 20:47:23
【问题描述】:

我得到了一些包含 运算符的 java 代码。这个算子的作用是什么?

if(x <> 0) {
    doSomething();
}

我以前从未见过它,它不在http://docs.oracle.com/的运营商页面上
我会把它归结为一个错字,但它在同一段代码中出现了两次。

【问题讨论】:

  • 那不会编译。
  • @markubik no in Java operator 你描述的看起来像!=,而不是&lt;&gt;
  • 你得到了一些错误的java代码。 Java 中没有 &lt;&gt; 运算符。
  • 谢谢。代码是一个拥有 PHD 的人给我的,因此我认为这只是我不知道的事情。
  • 也许它来自另一种语言!

标签: java operators


【解决方案1】:
if (x <> 0) {
    doSomething();
}

这在 Java2 中不是有效的运算符1。所以它不会编译。如果要使用不等号运算符,则必须使用!= 运算符:

if (x != 0) { // this is valid use in Java
    doSomething();
}

在这里你可以找到all valid operators in Java的列表。

使用示例泛型中的符号:

泛型类的定义格式如下:class name&lt;T1, T2, ..., Tn&gt; { ... }

在这里,你可以看到“你的符号”:

类型参数部分,由尖括号()分隔,如下 类名。它指定类型参数(也称为类型 变量)T1、T2、...和 ​​Tn。

有关更多信息,您需要查看Java generics。希望这会让事情变得更清楚。

1符号&lt;&gt;仅在Java中用于实例化泛型类型时。

2符号&lt;&gt; 例如在 SQL 语言中有效。看SQL operators

【讨论】:

    【解决方案2】:

    这不是有效的Java代码,会导致编译错误:

    if (x <> 0)
    

    上面的正确表达方式是:

    if (x != 0)
    

    唯一允许diamond operator 的部分是在实例化泛型类型时,并且仅从 Java 7 开始。例如:

    List<Integer> numbers = new ArrayList<>();
    

    【讨论】:

      【解决方案3】:

      这很可能是程序员遗漏的错误,因为某些 ide 在您先输入小于号时会自动添加大于号。

      例如eclipse会将&lt;转换为&lt;&gt;,你只需要记住删除第二个操作数。

      这个运算符&lt;&gt;实际上是其他语言中的不等于(!=)运算符,例如sql。

      最后就像其他人所说的那样,这个&lt;&gt; 表达式适用于 java 中的泛型。

      【讨论】:

        猜你喜欢
        • 2012-09-17
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 2011-04-04
        • 2018-03-25
        • 2017-08-28
        • 2021-08-23
        • 2020-04-09
        相关资源
        最近更新 更多