使用较少的特定参数调用重载方法

时间:2013-03-14 18:37:24

标签: java

java.util.Vector有方法: remove(int index)remove(Object o)

我有:

vector<Integer> a;
int b=3;

我想:

使用remove(Object o)变量调用方法b。 写a.remove(b)显然会调用remove(int index)

提前致谢,Maciej

1 个答案:

答案 0 :(得分:4)

a.remove(Integer.valueOf(b)); 

应该有效。在将自动装箱视为Integer之前,remove(Object)将首先解析为引用类型,并匹配remove(int)

来自Java Language Spec, 15.2.2

  

编译时步骤2:确定方法签名

     

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

     

第二阶段(§15.12.2.3)执行重载解析,而允许装箱和拆箱 ......