1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java素人 JavaBean - 素人派的个人页面 - OSCHINA - 中文开源技术交流社区

java素人 JavaBean - 素人派的个人页面 - OSCHINA - 中文开源技术交流社区

时间:2023-07-11 16:22:54

相关推荐

java素人 JavaBean - 素人派的个人页面 - OSCHINA - 中文开源技术交流社区

/**

* 根据字段的名称查找字段的 get 方法: 先检查是否有不带参数的 getXxx() 方法,如果没有再检查是否有不带参数的 isXxx() 方法

* @param clazz 字段所在的类

* @param fieldName 字段名称

* @return 字段对应的 get 方法,如果没有对应的 get 方法,则返回null

*/

public static Method findGetMethod(Class> clazz, String fieldName) {

Field field = getField(clazz, fieldName);

if(field != null) {

return findGetMethod(clazz, field);

}

String getMethodSuffix = findGetAndSetSuffix(fieldName);

Method getMethod = findMethod(clazz, "get" + getMethodSuffix);

if (getMethod == null) { // boolean 类型字段的 get 方法为 isXxx() 的形式

getMethod = findMethod(clazz, "is" + getMethodSuffix);

}

return getMethod;

}

/**

* 查找字段的 get 方法: 先检查是否有不带参数的 getXxx() 方法,如果没有再检查是否有不带参数的 isXxx() 方法

* @param clazz 字段所在的类

* @param field 字段

* @return 字段对应的 get 方法,如果没有对应的 get 方法,则返回null

*/

public static Method findGetMethod(Class> clazz, Field field) {

String getMethodSuffix = findGetAndSetSuffix(field.getName());

Method getMethod = findMethod(clazz, "get" + getMethodSuffix);

if (getMethod == null && (field.getType() == boolean.class || field.getType() == Boolean.class)) {

// boolean 类型字段的 get 方法为 isXxx() 的形式

getMethod = findMethod(clazz, "is" + getMethodSuffix);

}

return getMethod;

}

/**

* 查找字段的 set 方法

* @param clazz 字段所在的类

* @param field 字段

* @return 字段对应的 set 方法,如果没有对应的 set 方法,则返回null

*/

public static Method findSetMethod(Class> clazz, Field field) {

return findMethod(clazz, "set" + findGetAndSetSuffix(field.getName()), field.getType());

}

/**

* 获取getter或者setter方法的后缀

* @param fieldName

* @return

*/

public static String findGetAndSetSuffix(String fieldName){

if(fieldName.length() == 1){

if(fieldName.toUpperCase().equals(fieldName)){ //如果只有一个字母,并且是大写

return fieldName;

}

}else{

String firstChar = fieldName.substring(0, 1);

if(firstChar.equals(firstChar.toUpperCase())){ //如果第一个字母是大写

return fieldName;

}

String secondChar = fieldName.substring(1, 2);

if(secondChar.equals(secondChar.toUpperCase())){ //如果第二个字母是大写

return fieldName;

}

}

return WordUtils.capitalize(fieldName);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。