在Java开发中,命名规范一直备受关注,驼峰命名法各种命名规范常被开发中使用,在此不再赘述。本文主要记录一下当命名中第二个字母大写遇到的麻烦。

当第一个字母为小写,生成的getter和setter方法get和set后面的第一个字母为小写,后面的为大写。若此时通过反射调用set方法为此entity实例属性设置值或通过get方法取此entity实例的属性值时需注意,传方法名容易错误的将名称写成getATest或setATest(因为其他正常的命名方式是第一个字母大写),此时会报没有此方法的错误。

实体类中不要定义第一个、第二个都是大写字母的属性。

原因:
Java Bean 内部处理中的方法


public static String decapitalize(String name) {
// 空值处理
if (name == null || name.length() == 0) {
return name;
}
// 长度大于1 且前两个字母都为大写时返回原字符串
if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) &&
Character.isUpperCase(name.charAt(0))){
return name;
}
// 其他情况原字符串首字母小写后返回
char chars[] = name.toCharArray();
chars[0] = Character.toLowerCase(chars[0]);
return new String(chars);
}

输入 输出

AA AA

Aa aa //输出有问题

aA AA //输出有问题

aa aa