javabean屬性命名問題

這個問題有點無聊,但是我花了一個下午才找到點規律。過程中搜了網上的很多資料。
http://www.iteye.com/topic/137565
這篇討論很有參考性。javabean的命名規範可以從
http://java.sun.com/javase/technologies/desktop/javabeans/docs/spec.html
下載,不過我沒有下載成功。

javabean的屬性命名是有規範的,屬性變量的名稱用小寫字母開頭。但是如果大寫字母怎麼辦呢?下面這段代碼是輸出javabean的屬性名稱的。我用了一個User類來做測試。

BeanInfo beanInfo = Introspector.getBeanInfo(User.class);
PropertyDescriptor[] proDes = beanInfo.getPropertyDescriptors();
for( int i = 0; i < proDes.length; i++){
PropertyDescriptor pd = proDes[i];
System.out.println(pd.getName());
}


最後我從set***方法和get***方法入手找到一點規律。
如果***的前兩個字母都是大寫,那麼他對應的屬性名稱就是***,也就是說屬性名就是***不變。其他三種情況:小寫+小寫,小寫+大寫,大寫+小寫;都是將第一個字母變成小寫(原來是小寫的就小寫不變),其他的不變,作爲屬性名稱。

所以,一般我們在定義屬性變量的時候會出現如eMail,QQ等名字。那麼用自動生成get/set方法時就會生成如setEMail(),setQQ()等。那麼這些方法對應的屬性名稱應該是EMail,QQ。

一般來說,定義屬性變量的時候,注意第二個字母不要是大寫就可以了。

具體的Introspector,BeanInfo爲什麼把屬性名解釋成這樣就不知道了。

我找到的規律不知有沒有錯。歡迎指正。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章