我已经阅读过将Integer转换为int的线程,但我遇到了这个问题。我的代码是:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String numberOne = "12";
String numberTwo = "45";
Integer myint1 = Integer.valueOf(numberOne);
Integer myint2 = Integer.valueOf(numberTwo);
int sum = myint1.intValue() + myint2.intValue(); //line6
System.out.print(sum);
它给了我一个关于第6行不必要拆箱的警告,并建议我改为:
int sum = myint1 + myint2; //newline6
这两个版画给了我相同的结果。是不是必须在第6行将Integer转换为int?
答案 0 :(得分:11)
编译器会自动为你做同样的拆箱(从JDK 5开始),所以
int sum = myint1.intValue() + myint2.intValue();
有点多余
int sum = myint1 + myint2;
会有相同的行为。
也就是说,您可以将String
直接解析为int
,并避免装箱和取消装箱:
int myint1 = Integer.parseInt(numberOne);
int myint2 = Integer.parseInt(numberTwo);
int sum = myint1 + myint2;
答案 1 :(得分:4)