but I am sorry to say your "'widening >= boxing >= varargs'" is wrong, even without my example.
certainly if you pass an 'int' to 'Long' wrapper, it won't work because it is Boxing first, then Widening: int -> Integer- not -> Long. Just to point out.
OK, back to my topic: my understanding( or the easy way to analyze this type of problem) is:
since they are already var-arg arguments, Java will already treat them at 1.5 Level. so within 1.5, both widening and auto-boxing are OK, so it is ambigious. But without the var-arg arguments, Java will evaluate the lower version(e.g. 1.4) first, under which situation it will choose widening over boxing, as widening exists before boxing.
I hope I am clear. [ June 01, 2006: Message edited by: warren li ]