得到一个类的getter.setter方法
原本以为自己用过拼凑set单词,然后转换首字母大写方式是投机取巧,看了一段ibatis中判断一个javabean中的代码
原来也是用类似情况判断,代码如下:
?
private void getMethods(Class<?> cls) { Method[] methods = getClassMethods(cls); for (Method method : methods) { String name = method.getName(); if (name.startsWith("get") && name.length() > 3) { if (method.getParameterTypes().length == 0) { name = PropertyNamer.methodToProperty(name); addGetMethod(name, method); } } else if (name.startsWith("is") && name.length() > 2) { if (method.getParameterTypes().length == 0) { name = PropertyNamer.methodToProperty(name); addGetMethod(name, method); } } } }
?setter:
?
private void addSetMethods(Class<?> cls) { Map<String, List<Method>> conflictingSetters = new HashMap<String, List<Method>>(); Method[] methods = getClassMethods(cls); for (Method method : methods) { String name = method.getName(); if (name.startsWith("set") && name.length() > 3) { if (method.getParameterTypes().length == 1) { name = PropertyNamer.methodToProperty(name); addSetterConflict(conflictingSetters, name, method); } } } }?
?