@Override public Map<String, Field> call(Class<?> key) { return getFields(key, null); }}); }
public static Map<String, Field> getFields(Class<?> clazz) { return propertyCache.computeIfAbsent(clazz, key -> getFields(key, null)); }
public static Map<String, Field> getFields(Class<?> clazz) { return propertyCache.computeIfAbsent(clazz, key -> getFields(key, null)); }
public static void setProperty(Object obj, String property, Object value) throws Throwable { getFields(obj.getClass()).get(property).set(obj, value); }
public static Object getProperty(Object obj, String property) throws Throwable { return getFields(obj.getClass()).get(property).get(obj); }
public static void setProperty(Object obj, String property, Object value) throws Throwable { getFields(obj.getClass()).get(property).set(obj, value); }
public static Object getProperty(Object obj, String property) throws Throwable { return getFields(obj.getClass()).get(property).get(obj); }
public static void setProperty(Object obj, String property, Object value) throws Throwable { getFields(obj.getClass()).get(property).set(obj, value); }
public static Object getProperty(Object obj, String property) throws Throwable { return getFields(obj.getClass()).get(property).get(obj); }
private static Map<String, FieldGenericTypeBind> getGenericBeanFields(Type type, ReflectUtils.BeanFieldFilter filter) { Class<?> rawClass = extractClass(type); Map<String, Field> fieldMap = getFields(rawClass, filter); if (fieldMap == null || fieldMap.isEmpty()) { return Collections.emptyMap(); } else { Map<String, FieldGenericTypeBind> genericTypeBindMap = new HashMap<>(); if (type instanceof ParameterizedType) { Map<String, Type> genericNameTypeMap = createGenericNameTypeMap((ParameterizedType) type); fieldMap.forEach((name, field) -> bindFieldType(name, field, getBindType(field.getGenericType(), genericNameTypeMap), genericTypeBindMap)); return genericTypeBindMap; } else { fieldMap.forEach((name, field) -> bindFieldType(name, field, field.getGenericType(), genericTypeBindMap)); return genericTypeBindMap; } } }
private static Map<String, FieldGenericTypeBind> getGenericBeanFields(Type type, ReflectUtils.BeanFieldFilter filter) { Class<?> rawClass = extractClass(type); Map<String, Field> fieldMap = getFields(rawClass, filter); if (fieldMap == null || fieldMap.isEmpty()) { return Collections.emptyMap(); } else { Map<String, FieldGenericTypeBind> genericTypeBindMap = new HashMap<>(); if (type instanceof ParameterizedType) { Map<String, Type> genericNameTypeMap = createGenericNameTypeMap((ParameterizedType) type); fieldMap.forEach((name, field) -> bindFieldType(name, field, getBindType(field.getGenericType(), genericNameTypeMap), genericTypeBindMap)); return genericTypeBindMap; } else { fieldMap.forEach((name, field) -> bindFieldType(name, field, field.getGenericType(), genericTypeBindMap)); return genericTypeBindMap; } } }