利用JDK提供的反射工具类,可实现简单的Java Bean的属性赋值、获取属性值、获取所有属性及指定属性名的属性等。
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public final class ReflectionUtils {
public static Field getField(Class<?> cls, String fieldName) {
Class<?> sCls = cls;
do {
try {
return sCls.getDeclaredField(fieldName);
} catch (NoSuchFieldException ignored) {
sCls = sCls.getSuperclass();
}
} while (!Object.class.equals(sCls));
throw new RuntimeException("no such field[" + fieldName + "] in class [" + cls + "]");
}
public static Field getField(Object obj, String fieldName) {
return getField(obj.getClass(), fieldName);
}
public static List<Field> getAllFields(Class<?> cls) {
List<Field> fields = new ArrayList<>();
Class<?> sCls = cls;