在 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對類方法的處理中,也做了識別;
聯(lián)系客服