@@ -88,7 +88,7 @@ private List<Field> parseFieldList(Class clazz) {
8888
8989 List <Field > allFieldList = new ArrayList <>();
9090 Set <String > fieldNameSet = new HashSet <>();
91- Set <String > getterNameLowercaseSet = new HashSet <>();
91+ Set <String > setterNameLowercaseSet = new HashSet <>();
9292 Class currentClass = clazz ;
9393
9494 while (currentClass != null && currentClass != Object .class ) {
@@ -104,7 +104,7 @@ private List<Field> parseFieldList(Class clazz) {
104104 }
105105
106106 // 收集类上的方法名字
107- getterNameLowercaseSet .addAll (parseGetterNameLowercaseSet (currentClass ));
107+ setterNameLowercaseSet .addAll (parseSetterNameLowercaseSet (currentClass ));
108108
109109 // 再处理父类,一路向上知道找到根
110110 currentClass = currentClass .getSuperclass ();
@@ -113,7 +113,7 @@ private List<Field> parseFieldList(Class clazz) {
113113 // 然后筛选出来符合条件的字段,作为bean的属性
114114 List <Field > beanFieldList = new ArrayList <>();
115115 allFieldList .forEach (field -> {
116- if (isBeanField (field , getterNameLowercaseSet )) {
116+ if (isBeanField (field , setterNameLowercaseSet )) {
117117 beanFieldList .add (field );
118118 }
119119 });
@@ -125,41 +125,36 @@ private List<Field> parseFieldList(Class clazz) {
125125 * 判断Field是否是bean的field
126126 *
127127 * @param field
128- * @param getterNameLowercaseSet
128+ * @param setterNameLowercaseSet
129129 * @return
130130 */
131- private boolean isBeanField (Field field , Set <String > getterNameLowercaseSet ) {
131+ private boolean isBeanField (Field field , Set <String > setterNameLowercaseSet ) {
132132
133133 // 采用白名单的方式,public并且是实例方法则认为是可以的
134134 if (Modifier .isPublic (field .getModifiers ())) {
135135 return !Modifier .isStatic (field .getModifiers ()) && !Modifier .isFinal (field .getModifiers ());
136136 }
137137
138138 // 私有方法并且有对应的getter
139- String setterMethodName = "" ;
140- if (field .getType () == boolean .class || field .getType () == Boolean .class ) {
141- setterMethodName = "is" + field .getName ().toLowerCase ();
142- } else {
143- setterMethodName = "get" + field .getName ().toLowerCase ();
144- }
145- return getterNameLowercaseSet .contains (setterMethodName );
139+ String setterMethodName = "set" + field .getName ().toLowerCase ();
140+ return setterNameLowercaseSet .contains (setterMethodName );
146141 }
147142
148143 /**
149- * 解析类上的getter方法 ,并将其方法名都转为小写返回
144+ * 解析类上的setter方法 ,并将其方法名都转为小写返回
150145 *
151146 * @param clazz
152147 * @return
153148 */
154- private Set <String > parseGetterNameLowercaseSet (Class clazz ) {
155- Set <String > getterNameLowercaseSet = new HashSet <>();
149+ private Set <String > parseSetterNameLowercaseSet (Class clazz ) {
150+ Set <String > setterNameLowercaseSet = new HashSet <>();
156151 for (Method declaredMethod : clazz .getDeclaredMethods ()) {
157152 // 这里采用比较简单的策略,只要是关键字开头的就认为是ok的
158- if (declaredMethod .getName ().startsWith ("get" ) || declaredMethod . getName (). startsWith ( "is " )) {
159- getterNameLowercaseSet .add (declaredMethod .getName ().toLowerCase ());
153+ if (declaredMethod .getName ().startsWith ("set " )) {
154+ setterNameLowercaseSet .add (declaredMethod .getName ().toLowerCase ());
160155 }
161156 }
162- return getterNameLowercaseSet ;
157+ return setterNameLowercaseSet ;
163158 }
164159
165160 @ Override
0 commit comments