Java 1.5 varargs

Variable Arguments

I think of this as the same as C style programming. The varargs must be the last argument of a method signature. Instead of receiving an argc, argv, you get a Object[].

Warning: non-varargs call of varargs method with inexact argument type for last parameter

I've seen compiler warnings when a null is passed to vararg methods.


Warning:line (48)non-varargs call of varargs method with inexact argument type for last parameter;
cast to java.lang.Object for a varargs call
cast to java.lang.Object[] for a non-varargs call and to suppress this warning
    

If you pass in "(Object) null", then the argument is equivalent to "new Object[]{null}". Which is an Object array of length 1. The contents of the first element is null. This means that you cannot do a simple null check on the argument.

If you pass in "(Object[]) null", which is the default behaviour, then the Object array is null.

Published: Tuesday, 22 August 2006