Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将整数传递给int,反之亦然_Java - Fatal编程技术网

Java 将整数传递给int,反之亦然

Java 将整数传递给int,反之亦然,java,Java,我只是想知道为什么在方法参数为int类型的情况下可以将Integer作为参数传递,反之亦然 public class Salmon { public static Integer foo(Integer a, int b){ return a - b; } public static void main(String[] args) { Integer a = 10; int b = 1; foo(b, a); } } 这是自动装箱和自动取消装箱。基本上,编译器会适当

我只是想知道为什么在方法参数为int类型的情况下可以将Integer作为参数传递,反之亦然

public class Salmon {

 public static Integer foo(Integer a, int b){
  return a - b;
 }
 public static void main(String[] args) {
  Integer a = 10;
  int b = 1;
  foo(b, a);
 }
}
这是自动装箱和自动取消装箱。基本上,编译器会适当地调用
Integer.valueOf()
x.intValue()


确切的机制实际上没有指定,但是规范的相关章节有指定。

应该注意的是,此功能带来了一类神秘的NullPointerException问题。您可以开发吗?在哪种情况下,这会引发NullPointerException?@mxdsp:这根本不是问题的一部分。如果你遇到了一个无法解释的NPE,请在做了彻底的研究后再问一个新问题。(NPE上有很多问题。)抱歉,如果我不在主题范围内,但我对@Pointy comment做出了反应,我看不出这与问题无关。我还没有遇到任何NPE,但我想知道在哪种情况下自动(联合国)拳击不能安全使用,因为它可能“带来神秘的NPE”@mxdsp:Ah,这是有道理的。在将来,值得添加一个适当的“@”,这样就可以清楚地知道你在回复谁。(虽然我应该在这种情况下发现它-我的错。)自动取消装箱可能会混淆条件运算符-这是我最常见的NPE。