public static Object getProperty(Object bean, String propertyName) {
        Method getter = getBeanMate(bean.getClass()).getterMap.get(propertyName);
        if (getter == null) {
            throw new IllegalArgumentException(
                    "Property " + propertyName + " is not readable.");
        }
        return ReflectionUtils.invoke(getter, bean);
    }