`

setter方法提取---使用反射获得setter方法

阅读更多
   setters = new HashMap<String, Method>();
			for (Method method : clazz.getMethods()) {
				String methodName = method.getName();//找出setter方法
				//set方法至少长度为4,非静态,返回值为空,参数只有一个
				
				if (methodName.length() < 4) { //把一些内部自己弄的method给过滤掉
					continue;
				}

				if (Modifier.isStatic(method.getModifiers())) {//过滤静态方法
					continue;
				}

				if (!method.getReturnType().equals(Void.TYPE)) {
					continue;
				}

				if (method.getParameterTypes().length != 1) {
					continue;
				}

				if (methodName.startsWith("set") && Character.isUpperCase(methodName.charAt(3))) {
					String propertyName = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4);
					setters.put(propertyName, method);
					method.setAccessible(true);
				}
			}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics