System.out.println中的整数 - 取消装箱还是toString()?

时间:2016-04-13 10:00:33

标签: java integer

我有一个非常简单的问题。

我像这样编写代码片段:

{{1}}

问题是这里发生了什么?

  • 自动取消装箱整数到私有的int值,或
  • 调用了Integer的toString()方法?

2 个答案:

答案 0 :(得分:3)

好吧,因为重载解析过程的方法有3个阶段,并且初始阶段没有装箱/取消装箱以匹配候选方法的参数,所以这里调用的/lib + ojdbc-10.2.0.3.jar + p6spy-2.2.0.jar + spy.properties /scripts + build.xml 方法应该是{ {1}},因为PrintStreampublic void println(Object x)

Integer来电Object,致电void println(Object x)' String.valueOf(Object)

字节代码:

Integer

答案 1 :(得分:2)

来自JLS # 15.12.2. Compile-Time Step 2: Determine Method Signature

  

第一阶段(§15.12.2.2)执行重载解析而不允许装箱或拆箱转换,或使用变量arity方法调用。如果在此阶段没有找到适用的方法,则处理继续到第二阶段。

因此没有执行拆箱并选择了对象参数方法。

调用了Integer的toString()方法。