Porque meta-programação deve ser fácil.

Constructor

Manipulacão de Construtor usando o Mirror.

Refletindo

Refletindo um construtor pelos argumentos (retornará null se não for encontrado):
Class<T> clazz;
Constructor<T> c =
new Mirror().on(clazz).reflect().constructor()
                       
.withArgs(String.class, Object.class);
Refletindo todos os construtores de uma classe (retornará uma lista vazia caso nada seja encontrado):
Class<T> clazz;
List<Constructor<T>> l =
new Mirror().on(clazz).reflectAll().constructors();
Refletindo todos os construtores de uma classe que sejam aceitos por um Matcher<Constructor> (retornará uma lista vazia caso nada seja encontrado):
Class<T> clazz;
List<Constructor<T>> l =
new Mirror().on(clazz).reflectAll()
                                      
.constructorsMatching(new SeuProprioMatcher());

Invocando Construtores

Invocando um construtor:
Class<T> clazz;
T t =
new Mirror().on(clazz).invoke().constructor().withoutArgs();
Você também pode passar um java.lang.reflect.Constructor:
Constructor<T> umConstrutor;
Class<T> clazz;
T t =
new Mirror().on(clazz).invoke().constructor(umConstrutor).withArgs(valor1, valor2);