Java中的一元加号问题

王大明Pro MAX 2018-03-27 03:03:07
最近在看《Java编程思想(第四版)》中文版的,在看到第三章的时候,对一元加号操作符的时候书中时这样讲的:

一元减号用于转变数据的操作符,而一元加号只是为了与一元减号相对应,但是它唯一的作用仅仅是将较小类型的操作数提升为int.

刚开始看不懂最后一句话,因为我无法验证,比如一个byte型的数加了一元加号后我如何用程序证明他是因为用了加号还是因为自转变成了int类型的呢?比如下面的代码
public class Yiyuan {

public static void main(String[] args) {
int a = 1444;
byte b = 1;

print(+b);

}
public static void print(int j) {
System.out.println(j);
}
}
不过后来我去翻了英文原版的Thinking in Java ,原文是这样说的,如下图



翻译成中文即是一元减号是用于转变数据的符号的,而一元运算符和一元减号相对称,初次之外就没什么用了。

所以英文原版的没有“它唯一的作用仅仅是将较小类型的操作数提升为int.”这句号的。下图是中文版原文

所以中文版加的那句话的功能是真的存在还是翻译错误的?
...全文
574 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
捏造的信仰 2018-03-27
  • 打赏
  • 举报
回复
楼主要学会贴代码
public class Demo {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("no args.");
        }
    }
}
像楼主的代码层级多,又没有排版,没法看。
王大明Pro MAX 2018-03-27
  • 打赏
  • 举报
回复
懂了,谢谢大佬
自由自在_Yu 2018-03-27
  • 打赏
  • 举报
回复
一元加号唯一的作用仅仅是将较小类型的操作数提升为int
byte a = 1; 
		//byte b = +a;//错误,cannot convert from int to byte
		int c = +a;
		byte d = (byte)+a;

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧