There are no var args support yet to ease this so you need to multiple arguments as Cristiano suggested.
However you can do some bridging to keep look/work nicer.
interface VarArgFunction {
public Object call(Event event, Object..params) {
}
class VarArgConverterFunction {
VarArgFunction delegate;
VarArgConverterFunction(VarArgFunction delegate) { this.delegate = delegate; }
@Override
public Object call(Event event, Object param1, Object param2, Object param3) {
return delegate.call(event, new Object[] { param1, param2, param3 );
}
}
You can also do similar bridging in javascript in a more generic way.
function(e) {
delegateFunction.call(e, Array.prototype.slice.call(arguments, 1));
}
PS: Note that in the first solution params.length will be incorrect and might be better better if you prune null params while the second javascript baed solution should be ok;