【问题标题】:increment of longvalue before conditional operator [duplicate]条件运算符之前长值的增量[重复]
【发布时间】:2014-01-10 20:22:36
【问题描述】:

我试图理解以下语句在我的项目中遇到了代码

if(name != null && +ssnCount.getLongValue > 0){
    ......
}

有人可以解释一下 +ssCount.getLongValue 是什么意思吗?和区别。谢谢你的时间。

【问题讨论】:

  • 这不是增量,只是一个显式的+号
  • 这里的+ 是一元+ 运算符。
  • 这些没有区别...
  • @rgettman 为什么到底有一个一元 + 运算符...我看不到写过int i = +5

标签: java


【解决方案1】:

Oracle tutorial

  • 一元加运算符;表示 正值(数字是 然而,没有这个是积极的)

其实数字变量和以一元运算符加号为前缀的数字变量并没有明显的区别。有趣的是,此运算符将包装的值拆箱为原始类型。例如,如果您声明:

Integer a = 10;

然后使用引用'a'将是引用类型Integer,但使用'+a'将是原始类型int。为了更清楚:

Integer a = 10;
System.out.println(a instanceof Integer);// true
System.out.println(+a instanceof Integer);// compile time error - unexpected type

【讨论】:

    【解决方案2】:

    这看起来像是损坏的代码。 getLongValue 后面的 () 不见了(我推测,用这个名字,它本来是 打算作为一个函数调用的),并且一元加号很少使用。

    我建议把它还给写它的人,向他们指出这些问题,并询问他们的想法。

    【讨论】:

    • 我这边的拼写错误
    猜你喜欢
    • 2016-02-02
    • 2023-03-26
    • 2012-11-23
    • 2014-08-25
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多