public String testa(Object... args)
является синтаксическим сахаром для
public String testa(Object[] args)
Так что это метод, ожидающий массив объектов.
Method.invoke()
ожидает массив объектов, содержащий все аргументы для передачи вметоды.Таким образом, если метод принимает строку и целое число, вам нужно будет передать объект [], содержащий строку и целое число.Поскольку ваш метод принимает Object [] в качестве аргумента, вы должны передать в Method.invoke () Object [], содержащий Object [].Это то, что вы делаете в последней попытке.Но не то, что вы делаете в каждой другой попытке.