Java has had support for variable argument methods since version 5.  Wouldn't it be cleaner to use that?  For example, in LispObject.java there are several "execute" methods, one to support various numbers of arguments.  In Java 5+ you could write:

public LispObject execute(LispObject ... arg)  {  whatever  }

You call it like you do now, i.e.  execute(a, b, c, d)

but arg gets an array of the arguments.

This way you could create one method that would handle virtually any number of arguments in one clean method.

I'm sure this technique can be used in more places too.

Blake McBride