Estou com um erro
java.lang.IllegalArgumentException: o objeto não é uma instância da classe de declaração
ao chamar o método invoke
public List<Filtravel> getFiltros(Filter filter) {
List<Filtravel> filtraveis = new ArrayList<Filtravel>();
try {
Class<? extends Filter> clazz = filter.getClass();
for (Method method : clazz.getDeclaredMethods()) {
if (method.isAnnotationPresent(MetodoFiltravel.class)) {
MetodoFiltravel metodo = method.getAnnotation(MetodoFiltravel.class);
Object valor = method.invoke(clazz, method.getName());
filtraveis.add(new Filtravel(metodo.filtro(), valor));
}
}
} catch (Exception e) {
throw new BusinessException("Ocorreu um erro ao invovar um método.", e);
}
return filtraveis;
}