Я пытаюсь написать прототип функции Java, которая может быть вызвана с любым количеством целых чисел и строк:
myMethod(1, 2, 3, "Hello", "World"); // Valid call
myMethod(4, "foo", "bar", "foobar"); // Valid call
В идеале я бы хотел, чтобы целые числа и строки были указаны в любом порядке (и, возможно, в смешанном порядке):
myMethod(1, "Hello", 2, "World", 3); // Valid call
Я думал об использовании varargs, но в прототипе может быть только один. Другая идея, которая у меня возникла, - это использовать следующий прототип:
public void myMethod(Object ... objs) { [...] }
... но я чувствую, что должна быть ошибка компиляции в случае, если он вызывается с чем-то другим, кроме ожидаемых типов. Конечно, проверка времени выполнения ( instanceof
) может быть выполнена, но это не будет изящным решением, не так ли?
Как бы вы это сделали?