建设网站要做的工作总结,晋城客运东站网站开发,平面设计培训班哪里有,做网站外包好做吗一、前言 在获取map对象或者是其他深层嵌套对象#xff0c;如果你的做法是挨个取出判空然后继续再向下查找#xff0c;那么可以看看本文的方案#xff0c;它或许能让你打开新的思路。 作为一名java开发人员#xff0c;Mybatis几乎是我们无法避开的ORM框架#xff0c;如果你…一、前言 在获取map对象或者是其他深层嵌套对象如果你的做法是挨个取出判空然后继续再向下查找那么可以看看本文的方案它或许能让你打开新的思路。 作为一名java开发人员Mybatis几乎是我们无法避开的ORM框架如果你在开发中使用的ORM框架是Mybatis那么深层嵌套对象的获取你可以换个写法了。本文所使用的工具是Mybatis提供 二、使用 Mybatis中提供了一个MetaObject类该类是Mybatis实现的元对象反射工具类 他可以通过反射将对象属性填充。 /*** author : 卡诺来了* Date 2024/8/13*/
public class MetaObjectTools {GetterSetterAccessors(chain true)ToStringpublic static class User {private String id;private String name;}public static void main(String[] args) {// 初始化map对象其他深层次的嵌套对象也成此处拿map举例MapString, Object map new HashMap();map.put(user, new User().setId(1));map.put(users, Arrays.asList(new User().setId(1), new User().setId(2).setName(卡诺来了2)));// 构建元对象MetaObject metaObject SystemMetaObject.forObject(map);// 通过元对象获取数据// 普通对象// 获取user的nameObject value metaObject.getValue(user.name);System.out.println(value); // 不存在输出null// 设置user的namemetaObject.setValue(user.name, 卡诺来了);value metaObject.getValue(user);System.out.println(value);// MetaObjectTools.User(id1, name卡诺来了)// 数组类型// 获取users的第二个对象的namevalue metaObject.getValue(users[1].name);System.out.println(value); // 卡诺来了2// 更新users的第一个对象的namemetaObject.setValue(users[0].name, 卡诺来了1);value metaObject.getValue(users);System.out.println(value); // [MetaObjectTools.User(id1, name卡诺来了1), MetaObjectTools.User(id2, name卡诺来了2)]}
}