我有一个非常简单的问题。
我像这样编写代码片段:
{{1}}
问题是这里发生了什么?
答案 0 :(得分:3)
好吧,因为重载解析过程的方法有3个阶段,并且初始阶段没有装箱/取消装箱以匹配候选方法的参数,所以这里调用的/lib
+ ojdbc-10.2.0.3.jar
+ p6spy-2.2.0.jar
+ spy.properties
/scripts
+ build.xml
方法应该是{ {1}},因为PrintStream
是public 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()方法。