今天遇到了一个坑。类里面有个属性叫pOrgNo,通过反射获取属性值时候默认将属性首字母变大写拼上get来调用方法,但是发现找不到方法。查看了下getter的名字居然是getpOrgNo,首字母是小写的!!!
判断代码:
/**
* getter,setter属性处理
* @param s
* @return
*/
public static String decapitalize(String s) {
if (s null || s.length() 0)
// 空处理
return s;
if (s.length() > 1 && Character.isUpperCase(s.charAt(1)) && Character.isUpperCase(s.charAt(0))) {
// 长度大于1,并且前两个字符大写时,返回原字符串
return s;
} else if(s.length() > 1 && Character.isUpperCase(s.charAt(1)) && Character.isLowerCase(s.charAt(0))){
// 长度大于1,并且第一个字符小写,第二个字符大写时,返回原字符串
return s;
}else if(Character.isLowerCase(s.charAt(0))){
//如果首字母大写,返回原字符
return s;
}else {
// 其他情况下,把原字符串的首个字符大写处理后返回
char ac[] = s.toCharArray();
ac[0] = Character.toUpperCase(ac[0]);
return new String(ac);
}
}