The following extracts from the JLS,
Section 15.12.2 would further elaborate my previous post:-
--------------------------------------------------------
A method is
applicable if it is either applicable by subtyping
(�15.12.2.2), applicable by method invocation conversion
(�15.12.2.3), or it is an applicable variable arity method
(�15.12.2.4).
...
Discussion The purpose of the division into phases is to ensure compatibility with older versions of the Java programming language.
The first phase
(�15.12.2.2) performs overload resolution without permitting boxing or unboxing conversion, or the use of variable arity method invocation. If no applicable method is found during this phase then processing continues to the second phase.
Discussion This guarantees that any calls that were valid in older versions of the language are not considered ambiguous as a result of the introduction of variable arity methods, implicit boxing and/or unboxing.
The second phase
(�15.12.2.3) performs overload resolution while allowing boxing and unboxing, but still precludes the use of variable arity method invocation. If no applicable method is found during this phase then processing continues to the third phase.
Discussion This ensures that a variable arity method is never invoked if an applicable fixed arity method exists.
The third phase
(�15.12.2.4) allows overloading to be combined with variable arity methods, boxing and unboxing.
--------------------------------------------------------
Regards,
Abdul Rehman.
[ November 23, 2006: Message edited by: Abdul Rehman ]