Como criar array de um tipo usando reflection

Este post explica como criar um array de um tipo via reflection, como populá-lo e como realizar invoke de um método com argumento sendo um array do tipo.

Criando o array:

int tam = 1; // tamanho do array Object arr = Array.newInstance(Class.forName("nome da classe"), tam);
Populando o array:

Array.set(arr, posicao, valor);

Invoking:

Method method = classe.getClass().getMethod("nome do método", new Class[] {arr.getClass()});
method.invoke(classe, new Object[]{arr});