@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])); }
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 { 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 { 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); }
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); static boolean canControlMemberAccessible(); 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); }
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); static boolean canControlMemberAccessible(); 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);  }