Несколько типов объектов для varargs в прототипе метода?

Я пытаюсь написать прототип функции 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 ) может быть выполнена, но это не будет изящным решением, не так ли?

Как бы вы это сделали?

13
задан Bohemian 12 June 2011 в 13:20
поделиться