public class Test01 {
private Blog blog;
@Before
public void doBefore() {
User user = new User(3001L, "zzhua", 26);
User user01 = new User(3001L, "zzhua01", 26);
User user02 = new User(3001L, "zzhua02", 26);
Comment comment1 = new Comment(2001L, user01, "comment01...");
Comment comment2 = new Comment(2001L, user02, "comment01...");
ArrayList<Comment> comments = new ArrayList<>();
comments.add(comment1);
comments.add(comment2);
HashMap<String, Object> extraInfo = new HashMap<>();
extraInfo.put("author", user);
extraInfo.put("date", "2022-10");
blog = new Blog(1001L, "《Just a blog》", user, comments, extraInfo);
}
@Test
public void testReadMetaObject() {
MetaObject metaObject = MetaObject.forObject(blog, new DefaultObjectFactory(), new DefaultObjectWrapperFactory(), new DefaultReflectorFactory());
// 获取属性值
// (简单属性)
Object blogId = metaObject.getValue("blogId");
System.out.println(blogId);
String blogTitleProp = metaObject.findProperty("blog_title", true);
Object blogTitle = metaObject.getValue(blogTitleProp);
System.out.println(blogTitle);
// (对象属性)
Object username = metaObject.getValue("user.username");
System.out.println(username);
// (集合属性)
Object c0Age = metaObject.getValue("commentsList[0].user.age");
System.out.println(c0Age);
Object date = metaObject.getValue("extraInfo[date]");
System.out.println(date);
}
@Test
public void testWriteMetaObject() {
MetaObject metaObject = SystemMetaObject.forObject(blog);
metaObject.setValue("blogTitle", metaObject.getValue("blogTitle") + "!");
User fakeUser = new User(3001L, "zzhua01", 26);
metaObject.setValue("user", fakeUser);
metaObject.setValue("commentsList[1].user.age", 27);
metaObject.setValue("extraInfo[date]", "2022-10-04");
System.out.println(metaObject.getOriginalObject());
}
}
MetaObject基本使用
最新推荐文章于 2024-03-21 22:34:22 发布