前面我們介紹了Reflector類,Reflector主要完成了Class類中Setter、Getter方法的封裝,可以使用屬性獲取對應的Getter、Setter方法完成方法的調用,同時也可以判斷屬性是否存在,是否存在Getter、Setter方法。
使用Reflector解決了訪問Class類中屬性的問題,但是如果屬性是成員實例,如果要訪問實例下的屬性時就需要手動實現了,如果牽扯到多級嵌套實例,再解決時就會更加繁瑣,Mybatis中封裝了MetaClass能夠解決我們的這個問題。本篇我們主要介紹MetaClass類。
一、MetaClass實例
private final ReflectorFactory reflectorFactory
private final Reflector reflector;private MetaClass(Class<?> type, ReflectorFactory reflectorFactory) {this.reflectorFactory = reflectorFactory;this.reflector = reflectorFactory.findForClass(type);
}
類中只定義了reflectorFactory、reflector兩個字段
MetaClass類提供了一個私有的構造方法,接收一個Class對象和