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);
Reflectindo o único construtor de uma classe (lançará uma exceção se encontrar mais de um contrutor)
Class<T> clazz;
Constructor<T> m = new Mirror().on(clazz).reflect().constructor().withAnyArgs();
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()
.constructors().matching(new SeuProprioMatcher());
Você também pode mapear seus construtores para outros tipos:
Class<T> clazz;
List<String> l = new Mirror().on(clazz).reflectAll()
.constructors().mappingTo(new SeuProprioMapperDeConstrutorParaString());