Sun推荐的属性命名规则是:xxx的属性对应setXxx()方法。
一般情况下,Java的属性变量都以小写字母起头,如name,userName等,但也存在特殊的情况下,如一些特定意义的大写英文缩略词(如XML.URL)等。JavaBean也允许大写字母起头的情况,不过必须满足“变量的前两个字母要么全部大写,要么全部小写”的要求,如IDCode、ID、ICCcard等属性变量名是合法的,而iD、iCcard、iDCode等属性变量名则是非法的。在有些情况下非法的变量再以属性名第一个字母大写的方式命名get和set方法,会导致找不到属性错误。
解决办法:
1、如果属性名的第二个字母大写,那么该属性名直接用作setter/getter方法中set/get的后部分,就是说大小写不变。例如属性名为uName,方法是getuName()/setuName().
2、如果前两个字母大写(一般的专有名词和缩略词都会大写),则属性名直接用作setter/getter方法中set/get的后部分。例如属性名为URL,方法名是getURL/setURL。
3、如果首字母大写,则属性名直接用作setter/getter方法中set/get的后部分,例如属性名为Name,方法是getName/setName, 这是最糟糕的情况,会找不到属性出错的地方,因为默认的属性名是name。