I have some varargs system function, where T is some actual type, like String
:
sys(T... args)
I want to create own function, which delegates to the system function. My function is also a varargs function. I want to pass through all the arguments for my function through to the system function, plus an additional trailing argument. Something like this:
myfunc(T... args) {
T myobj = new T();
sys(args, myobj); // <- of course, here error.
}
How do I need to change the line with the error? Now I see only one way: create array with dimension [args] + 1 and copy all items to the new array. But maybe there exists a more simple way?
There is no simpler way. You need to create a new array and include
myobj
as last element of the array.If you happen to depend on Apache Commons Lang you can do
or Guava
You may call
sys()
twice if the order doesn't care:If you can't use this, switch to collections (eg. LinkedList) for all of your functions.
If you can use Guava, then you can do:
Java 8 solution: