判断getter/setter方法
在 Mybatis的源码中,有 类 PropertyNamer 判断 getter/setter 方法 :
PropertyNamer {
PropertyNamer() {
}
/** 获取方法的属性:截取is/setter/getter后面的字符串,将首字母转成大写 */
String (String name) {
(name.startsWith()) {
name = name.substring();
} (name.startsWith() || name.startsWith()) {
name = name.substring();
} {
ReflectionException(+ name + );
}
(name.length() == || (name.length() > && !Character.(name.charAt()))) {
name = name.substring(, ).toLowerCase(Locale.) + name.substring();
}
name;
}
/** 是否是属性 */
(String name) {
(name) || (name);
}
/** 方法名以get开头,且长度大于3 */
(String name) {
(name.startsWith() && name.length() > ) || (name.startsWith() && name.length() > );
}
/** 方法名以set开头,且长度大于3 */
(String name) {
name.startsWith() && name.length() > ;
}
}
另外:
一个属性的 get方法,不仅会有 getProp() 的方法,也可能会有 isProp() 的方法,这两个方法是通用的,在Mybatis对类方法的处理中,也做了识别;
赞 (0)
