的JavaBeans技术规范表示,对一个属性
propertyName应该有一个getter方法
getPropertyName()和/或setter方法
setPropertyName()。
属性仅由getter和setter方法的存在定义,也可以是计算值。不需要对象上的实例变量。
该规范定义了属性和getter / setter方法的大写规则:
因此,当我们从现有Java名称的中间提取属性或事件名称时,通常会将第一个字符转换为小写。但是,为了支持偶尔使用所有大写名称,我们会检查名称的前两个字符是否均为大写,是否保留为大写。例如
“ FooBah”变成“ fooBah”,“ Z”变成“ z”,“ URL”变成“ URL”
该方法实际上实现为:
public static String decapitalize(String name) { if (name == null || name.length() == 0) { return name; } 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); }所以:
- 如果
name
null为null,则将其返回 - 如果的
name
大写字母前两个字符,则将其返回 - 所有其他字符串,将第一个字符大写



