### Question:
Reflector { public Invoker getGetInvoker(String propertyName) { Invoker method = getMethods.get(propertyName); if (method == null) { throw new ReflectionException("There is no getter for property named '" + propertyName + "' in '" + type + "'"); } return method; } Reflector(Class<?> clazz); Class<?> getType(); Constructor<?> getDefaultConstructor(); boolean hasDefaultConstructor(); Invoker getSetInvoker(String propertyName); Invoker getGetInvoker(String propertyName); Class<?> getSetterType(String propertyName); Class<?> getGetterType(String propertyName); String[] getGetablePropertyNames(); String[] getSetablePropertyNames(); boolean hasSetter(String propertyName); boolean hasGetter(String propertyName); String findPropertyName(String name);  }### Answer:
@Test public void shouldAllowTwoBooleanGetters() throws Exception { @SuppressWarnings("unused") class Bean { public boolean isBool() {return true;} public boolean getBool() {return false;} public void setBool(boolean bool) {} } ReflectorFactory reflectorFactory = new DefaultReflectorFactory(); Reflector reflector = reflectorFactory.findForClass(Bean.class); assertTrue((Boolean)reflector.getGetInvoker("bool").invoke(new Bean(), new Byte[0])); }