Java反射
1、创建缓存池,可以加快访问速度
text
1
private static final Map<String, List<Field>> CACHE = new HashMap<String, List<Field>>();
2、获取实体类的所有属性,返回Field列表
text
1
2
3
4
5
6
7
8
9
10
11
12
13
private List<Field> getFieldOfClass(Class<?> clazz) {
List<Field> fields = CACHE.get(clazz.getName());
if (fields == null) {
Field[] fieldArr = clazz.getDeclaredFields();
fields = new ArrayList<Field>(fieldArr.length);
for (Field each : fieldArr) {
each.setAccessible(true);
fields.add(each);
}
CACHE.put(clazz.getName(), fields);
}
return fields;
}
3、为对象设置值
text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public <T> T setObjVal(T obj) {
if (obj == null) {
return null;
}
List<Field> fields = getFieldOfClass(obj.getClass());
for (int j = 0, size = fields.size(); j < size; j++) {
try {
// 获取属性的名字
Field each = fields.get(j);
//为set方法set值
each.set(obj, "参数值");
} catch (Exception e) {
e.printStackTrace();
}
}
return obj;
}





评论
登录后即可评论
分享你的想法,与作者互动
暂无评论