package main; import java.lang.reflect.Field; import java.util.Date; import model.Cliente; import model.Intervalo; import model.NaoNulo; public class Main { public static void main(String[] args) { Cliente c = new Cliente(); c.setId(4); c.setNome("Paulo Silva"); c.setDataNascimento(new Date()); refletir(c); refletir(""); refletir(1); } public static void refletir(Object o) { Class clazz = o.getClass(); System.out.println(clazz); Field[] fields = clazz.getDeclaredFields(); for (Field f : fields) { System.out.println(f); f.setAccessible(true); try { System.out.println(f.get(o)); } catch (Exception e) { e.printStackTrace(); } if (f.isAnnotationPresent(NaoNulo.class)) { System.out.println(f + " tem NaoNulo"); } if (f.isAnnotationPresent(Intervalo.class)) { System.out.println(f + " tem min " + f.getAnnotation(Intervalo.class).min() + " tem max" + f.getAnnotation(Intervalo.class).max()); } } } }