什么是Java的一元加运算符的目的是什么?什么是Java的一元加运算符的目的是什么?(What is

2019-05-10 08:59发布

Java的一元加运算似乎从C到已经过来了,通过C ++。

int result = +1;   

它似乎有以下影响:

  • Unboxes它的操作数,如果它是一个包装对象
  • 促进其操作来int ,如果它不是已经是一个int或更宽
  • 复杂包含大量的连续的加号的邪恶表情略微解析

在我看来,有更好/更清晰的方式做所有这些事情。

在这太问题 ,关于C#中的对应操作,有人说,“它的存在超载,如果你觉得有必要。”

然而,在Java中,一个不能重载任何操作。 那么,这是否一元加运算符存在于Java的不仅是因为它在C ++中存在?

Answer 1:

一元加号运算符执行一个自动转换到int时它的操作数的类型是bytechar ,或short 。 这就是所谓的一元数值升级 ,它使您能够做这样的事情如下:

char c = 'c';
int i = +c;

当然,它的用途有限。 但它确实有一个目的。 见本说明书中,特别是部分§15.15.3§5.6.1



Answer 2:

我不知道,但我怀疑它的存在对与(显然需要)元减运算符对称。



Answer 3:

这里是什么样的一元加会做一个字符变量简短演示:

private static void method(int i){
    System.out.println("int: " + i);
}

private static void method(char c){
    System.out.println("char: " + c);
}

public static void main(String[] args) {
    Character ch = 'X';
    method(ch);
    method(+ch);        
}

运行这个程序的输出是:

char: X
int: 88

它是如何工作:一元+或 - 拆箱他们的操作数,如果它是一个包装对象,然后促进其操作数为int,如果没有一个int或更宽。 所以,我们可以看到,虽然在第一次调用method会选择char超载(仅拆箱),第二个电话会选择int的版本method 。 可变ch类型的Character将被传递到method作为int参数,因为所施加的一元加号的。



Answer 4:

我的猜测是它的存在,因为有时打字加了使事情变得更清晰。 你可能想强调的是,有些数字是积极的,而不是一些负数。

另外,提供使用它的一个现实世界的例子,正温度往往在世界的一些地方加始终前缀。



Answer 5:

一个Java的设计目标是要熟悉(一个C / C ++开发者),所以当它来到运营商这样我敢肯定,他们就必须有一个强有力的理由将它排除在外,没有一个很好的理由需要它。



Answer 6:

许多其他语言有一元加。 这是习惯,包括它,小气的将它排除在外。 这只是一对夫妇在编译行。



Answer 7:

一元经营者对Java以下内容:

  • “+”一元加运算; 表示正的值(数字是没有这个正,但是)
  • “ - ”元减运算符; 否定的表达
  • ++递增运算符; 递增1的值
  • - 递减操作; 通过减1的值! 逻辑补算子; 反转的布尔值

来源: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html



文章来源: What is the purpose of Java's unary plus operator?