成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關(guān)于JavaBean規(guī)范中的一些情形分析

開發(fā) 后端
本文描述了關(guān)于JavaBean規(guī)范中應(yīng)該知道的二三事。Sun提供的JavaBean規(guī)范的文檔足足有114頁,本文對于一些實際中的問題作了一些總結(jié)。

作為 Java  程序員,對于 JavaBean 也許你會說再熟悉不過了,它活躍于系統(tǒng)的很多層,不同的說法有 PO、VO、DTO、POJO。然而它無外乎就是一個 Class 類,帶上些屬性和它們的 setter/getter 方法,set/get 后面那一個字母大寫。雖然我們現(xiàn)在很少把 JavaBean 與那個古老的 2.0 的 EJB 搞混,但為什么明明用 IDE 為屬性生成的 getter/setter 方法,應(yīng)用一運行,還是報找不到某個 bean 屬性的 setter 或 getter 方法呢?

要知道,在 Sun 的網(wǎng)站上那個關(guān)于 JavaBean 規(guī)范的 PDF 文檔可是有足足實實的 114 頁啊。難免有些規(guī)則有點古怪,至使知名的 IDE 都難以應(yīng)對,所以我們還是有必要了解其中二三,來規(guī)范我們的 JavaBean 和解釋一些情形。

Sun  的關(guān)于 JavaBean規(guī)范中可下載到 JavaBean 規(guī)范的  PDF 文檔。

實際中的問題

首先,當然還是要說它的屬性及 setter/getter 方法。屬性以小寫字母開頭,駝峰命名格式,相應(yīng)的 getter/setter 方法是 get/set 接上首字母大寫的屬性名。多數(shù)情況是對的,且當前流行的 IDE(Eclipse、JBuilder) 也都認這個死理,這里 NetBean 值得表揚一下。但要是碰到些遺留的代碼中屬性名不規(guī)范,或者有些人就是頑固,或真是對屬性命名猶豫不決時的寫下的代碼時,那還是有得你研究一下。

這里來看看 Eclipse 為幾個屬性生成的 getter/setter 方法吧:

sName(從 C 轉(zhuǎn)過來的,受匈牙利的影響,認為 Name 是個字符串,所以加個前綴 s)           getSName()/setSName(String name)

URL (平時認為是縮略語/專有名詞,理當全部大寫,這在我們對待 ID 時經(jīng)常發(fā)生的)           getURL()/setURL(String url)

上面第一個由 Eclipse 為我們生成的 getSName()/setSName(String name) 方法,參照 JavaBean  規(guī)范來說,其實是錯誤的。如果出現(xiàn)這樣的方法,放到我們的標簽(像 Struts 標簽,如 < s:textfield name="sName"/>),或是進行 Hibernate/iBatis 那種映射時,你就能收到報 找不到 sName 屬性相應(yīng)的 getter/setter 方法 那樣的錯誤。不是明明有 getSName() 和 setSName(String name),可是方法名錯了,正確的版本應(yīng)該是 getsName() 和 setsName(String name)。

前面首先解釋了屬性命名不規(guī)范產(chǎn)生問題的原因,現(xiàn)在就來更仔細的了解關(guān)于 JavaBean 屬性及其 getter/setter 方法的約定,有些是硬性的。

JavaBean規(guī)范中關(guān)于屬性與存取訪問的規(guī)定

為 JavaBean 創(chuàng)建屬性時,必須牢記:縮略語通常被視為一個獨立的單詞,而不是單個字母。例如,URL 對應(yīng)的屬性名應(yīng)該用 url,相應(yīng)的 getUrl()/setUrl(),所以 ID 還是用 id 作為屬性吧,相應(yīng)的 getId()/setId()。

規(guī)范中另一個特別的地方就是,第二個字母為大寫的屬性名要區(qū)別對待。如果屬性名的第二個字母是大寫的,那么該屬性名直接用作 getter/setter 方法中 get/set 的后部分,就是說大小寫不變。這就是為什么 sName 對應(yīng)的存取方法是 getsName()/setsName() 的原因,不能不說這條規(guī)則很令人費解。那就更有必要看看下面表格的規(guī)范:

屬性名/類型 getter 方法 setter 方法
xcoordinate/Double public Double getXcoordinate() public void setXcoordinate(Double newValue)
xCoordinate/Double public Double getxCoordinate() public void setxCoordinate(Double newValue)
XCoordinate/Double public Double getXCoordinate() public void setXCoordinate(Double newValue)
Xcoordinate/Double 不允許 不允許
student/Boolean public Boolean getStudent() public void setStudent(Boolean newValue)
student/boolean public boolean getStudent()
public boolean isStudent()
public void setStudent(boolean newValue)

屬性是首字母大寫,次字母小寫是,你永遠都找不到它的 getter/setter 方法的,對這個屬性的使用是會害人的。對于 boolean 類型屬性的 getter 方法是 isXxx() 還是 getXxx() 就自己決定了,isXxx() 應(yīng)該更接近于自然語言,更順溜些。

知道了屬性及存取方法的規(guī)定,那么你即使是面對古老代碼,在使用標簽來引用或與 Hibernate/iBatis 等進行映射,你就知道該填什么樣的屬性名了。

還有一個我們很少碰觸到的是關(guān)于可索引屬性的 getter/setter 方法(這方面 C# 表現(xiàn)的比 Java 要優(yōu)秀),比如有屬性

private  OrderItem[] orderItem;      那它相應(yīng)的 getter/setter 除常見的兩個外,還有帶索引參數(shù)的兩個版本,如下:

Java 代碼 點記法
anOrder.getAccount().getUsername() anOrder.account.username
anOrder.getOrderItem().get(0).getProductId() anOrder.orderItem[0].productId
anObject.getId() anObject.id
anObject.getxCoordinate() anObject.xCoordinate

JavaBean規(guī)范中的 Bean 導(dǎo)航

最后就是 Bean 導(dǎo)航的規(guī)范,通常用點記法(dot notation) 來引用屬性,同時也要注意索引屬性的訪問。在 Web MVC 的表單中,以及標簽中, Jarkata-Commons-BeanUtils  中用得很多。看點記法的示例:

  1. public OrderItem[] getOrderItem();  
  2. public void setOrderItem(OrderItem[] newArray);  
  3. public OrderItem[] getOrderItem(int index);  
  4. public void setOrderItem(int index, OrderItem orderItem); 

比如像 Struts1 標簽:

  1. < html:text property="stocks[1].code"/> 

會顯示出 FormBean 中 stocks 列表的第二個元素的 code 屬性,提交就填充到相應(yīng)的位置上去。

【編輯推薦】

  1. JavaBeans、EJB和POJO詳解
  2. 給JavaBeans增加XPath功能
  3. Enterprise JavaBeans查詢語言
  4. Enterprise JavaBeans EJB技術(shù)
  5. 什么時候在EJB系統(tǒng)中使用XML
責(zé)任編輯:yangsai 來源: 隔葉黃鶯
相關(guān)推薦

2011-07-13 09:13:56

Android設(shè)計

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java繼承

2023-02-10 09:46:04

bash腳本變量

2022-11-09 19:02:10

Linux

2017-09-10 17:31:18

iOS渲染數(shù)據(jù)

2017-02-20 16:28:30

DCISDN-WAN傳輸網(wǎng)絡(luò)

2012-09-25 10:03:56

JavaJava封面Java開發(fā)

2011-03-21 13:41:20

數(shù)據(jù)庫開發(fā)規(guī)范

2011-03-11 09:27:11

Java性能監(jiān)控

2015-12-04 10:04:53

2022-04-14 10:22:44

故事卡業(yè)務(wù)

2012-04-19 10:06:55

微軟Windows 8 E

2020-09-28 06:45:42

故障復(fù)盤修復(fù)

2009-06-04 16:28:43

EJB常見問題

2017-12-21 07:54:07

2018-07-30 08:41:48

VueReact區(qū)別

2020-04-10 08:50:37

Shell腳本循環(huán)

2020-05-19 14:35:42

Shell腳本循環(huán)

2016-10-18 22:10:02

HTTP推送HTML
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美精品91 | 91日韩| 久久久久国产一区二区三区 | 久久精品国产99国产 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 秋霞电影一区二区三区 | 国产精品久久久久久久久久 | 久久99精品视频 | 你懂的在线视频播放 | 欧美在线一区二区三区 | 日韩一级免费观看 | 国产一区二区在线视频 | 亚洲区一区二 | 在线观看视频一区二区三区 | 成人在线精品视频 | 日本久久www成人免 成人久久久久 | 亚洲精品国产成人 | 九九久久精品 | 午夜精品久久久久久久久久久久久 | 久久久久免费 | 日韩欧美网 | hsck成人网 | 亚洲电影一区二区三区 | 91久久精品国产 | 婷婷久久久久 | 91视频一区二区 | 午夜影院黄 | 免费精品在线视频 | 三级免费网| 国内久久精品 | 久久久久国产一区二区三区 | 欧美成人精品欧美一级 | 欧美老妇交乱视频 | 久久久成人免费一区二区 | 日韩av成人在线 | 日韩一区二区三区在线观看 | 性生生活大片免费看视频 | 911精品国产 | 日本免费一区二区三区视频 | 国产精品精品久久久 |