判断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)

相关推荐