MyBatis MetaObject.forObject 源码深度剖析MetaObject是 MyBatis 提供的对象元数据操作工具,它封装了 Java 对象属性(包括嵌套属性、Map 键值、集合元素)的统一访问接口。其静态工厂方法forObject(Object object, ObjectFactory objectFactory, ObjectWrapperFactory objectWrapperFactory, Configuration configuration)是创建MetaObject实例的入口。本文将深入分析forObject方法的源码实现,以及MetaObject的整个构建过程。一、MetaObject 整体架构MetaObject-Object originalObject-ObjectWrapper objectWrapper-ObjectFactory objectFactory-ObjectWrapperFactory objectWrapperFactory-Configuration configuration+static MetaObject forObject()+Object getValue(String name)+void setValue(String name, Object value)+Class getSetterType(String name)+Class getGetterType(String name)+boolean hasSetter(String name)+boolean hasGetter(String name)«interface»ObjectWrapper+Object get(String name)