class TypeReflector {

    public void set(T bean, String name, Object value) {
        validate(bean, name);
        BiConsumer<T, Object> setter = setters.get(name);
        if (setter == null) {
            throw new IllegalArgumentException("No setter specified for property '" + name + "' on bean class '" + bean.getClass() + "'");
        }
        setter.accept(bean, value);
    }

    public  TypeReflector(Class<T> clazz);
    public  TypeReflector(JavaType javaType);

}