国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

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

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

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

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

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

實(shí)際中的問(wèn)題

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

這里來(lái)看看 Eclipse 為幾個(gè)屬性生成的 getter/setter 方法吧:

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

URL (平時(shí)認(rèn)為是縮略語(yǔ)/專(zhuān)有名詞,理當(dāng)全部大寫(xiě),這在我們對(duì)待 ID 時(shí)經(jīng)常發(fā)生的)           getURL()/setURL(String url)

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

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

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

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

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

屬性名/類(lèi)型 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)

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

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

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

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

Java 代碼 點(diǎn)記法
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ī)范,通常用點(diǎn)記法(dot notation) 來(lái)引用屬性,同時(shí)也要注意索引屬性的訪(fǎng)問(wèn)。在 Web MVC 的表單中,以及標(biāo)簽中, Jarkata-Commons-BeanUtils  中用得很多。看點(diǎn)記法的示例:

  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 標(biāo)簽:

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

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

【編輯推薦】

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

2011-07-13 09:13:56

Android設(shè)計(jì)

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java繼承

2022-11-09 19:02:10

Linux

2017-09-10 17:31:18

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

2023-02-10 09:46:04

bash腳本變量

2017-02-20 16:28:30

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

2012-09-25 10:03:56

JavaJava封面Java開(kāi)發(fā)

2011-03-21 13:41:20

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

2012-04-19 10:06:55

微軟Windows 8 E

2022-04-14 10:22:44

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

2017-12-21 07:54:07

2020-09-28 06:45:42

故障復(fù)盤(pán)修復(fù)

2011-03-11 09:27:11

Java性能監(jiān)控

2009-06-04 16:28:43

EJB常見(jiàn)問(wèn)題

2015-12-04 10:04:53

2020-04-10 08:50:37

Shell腳本循環(huán)

2017-09-20 15:07:32

數(shù)據(jù)庫(kù)SQL注入技巧分享

2018-07-30 08:41:48

VueReact區(qū)別

2009-08-13 16:41:12

C#結(jié)構(gòu)
點(diǎn)贊
收藏

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

亚洲自拍偷拍网站| 国产一二三在线视频| 麻豆一区二区三区在线观看| 欧美一区二区三区四区五区 | 激情综合在线| 亚洲福利视频免费观看| 精品999在线| 久草这里只有精品视频| 国产精品永久在线| 亚洲人成伊人成综合图片| 亚洲精品一二区| 在线观看av黄网站永久| 国产精品久久久久影院色老大| 精品国产一区二区三区日日嗨| 一道本一区二区三区| 亚洲欧洲免费视频| 国产精品一区二区三区毛片淫片| 一级毛片久久久| 亚洲国产成人在线播放| 男人的天堂在线免费视频| 亚洲视频一区在线观看| 国产乱xxⅹxx国语对白| 91在线一区二区| 嫩草影院中文字幕| 黄色av网址在线免费观看| 亚洲午夜三级在线| 黄色av资源| 欧美高清在线一区二区| 午夜精品三级视频福利| 超碰成人在线免费| 亚洲欧美日韩高清| 国产欧美综合在线| 成人久久一区二区| 天堂电影一区| 国产精品av在线播放| 日本一级理论片在线大全| 欧美va在线播放| 国产成人无吗| 精品国产网站在线观看| 69久成人做爰电影| 亚洲最大在线视频| 久久精品超碰| 中文亚洲视频在线| 色综合久久久久久久久五月| 99久久久久国产精品| 国产精品久久久久久久久久久久久 | 亚洲国产午夜伦理片大全在线观看网站| 国产精品av一区二区| 成人黄色免费网站| 欧美性受xxxx黑人xyx性爽| 一区二区三区日本| 亚洲欧美中文日韩在线v日本| 亚洲第一图区| 激情综合在线| 26uuu另类欧美| 91久久中文字幕| 欧美 日韩 国产 一区| 欧美美乳视频网站在线观看| 91嫩草精品| 亚洲最大福利视频| 亚洲一区日韩在线| 日本一区二区久久精品| 国产成人无遮挡在线视频| 香港三级韩国三级日本三级| 国产精品久久777777| 福利小视频在线观看| 日韩一级视频免费观看在线| 麻豆视频在线观看免费网站黄| 久色婷婷小香蕉久久| 日本不卡高清视频一区| 国产精品中文字幕欧美| 视频在线国产| 欧美电影免费播放| 极品尤物一区二区三区| 久久99精品国产.久久久久久| 狠狠热免费视频| 五月激情综合网| 欧美人与牲禽动交com| 国产亚洲精品va在线观看| 91精品啪在线观看国产81旧版| 91在线直播亚洲| 午夜视频在线观看一区二区| а√天堂资源国产精品| 欧美孕妇与黑人孕交| 精品欧美一区二区三区在线观看| 国产精品美女www爽爽爽| 这里只有精品视频在线| 国产真实有声精品录音| 欧美国产一区二区在线| 久久久影视传媒| 91在线中文| 欧美精品生活片| 久久性感美女视频| 日韩精品xxxx| 欧美在线免费观看亚洲| 欧美影视资讯| 亚洲免费观看在线观看| 97超碰免费在线| 国产98色在线| 精品系列免费在线观看| 国产免费av高清在线| 欧美成人免费大片| 国产日韩欧美一区| 国产男女无遮挡| 粉嫩一区二区三区四区公司1| 欧美体内谢she精2性欧美| 成人免费网址在线| 亚洲午夜精品网| 2019中文字幕在线电影免费| 国产精品久久久影院| 欧美日韩国产综合新一区| 欧美自拍电影| 不卡视频一区二区| 久久综合一区二区| 色戒汤唯在线观看| 亚洲va男人天堂| 国产欧美一区二区精品婷婷| 丝袜诱惑一区二区| 91久久国产婷婷一区二区| 国产高清视频一区| 青春草免费在线视频| 久久综合狠狠综合| 在线免费观看污| 91亚洲永久免费精品| 亚洲综合色噜噜狠狠| 久久福利在线| 亚洲综合网中心| 日韩欧美高清在线| 欧美视频导航| 一二三在线视频社区| 国产一区二区三区在线免费观看| 老司机亚洲精品| 国产资源在线观看| 国产精品老牛影院在线观看| 亚洲乱码精品一二三四区日韩在线| 亚洲人免费短视频| 亚洲五月六月| 亚洲美女激情视频| 老司机午夜精品视频| 国产精品美女久久久久av福利| 国产欧美一区二区精品婷婷| 牛牛精品一区二区| 五月天国产一区| 欧美日韩国产综合草草| 日韩av久操| 日韩免费在线免费观看| 亚洲欧美国产另类| 牲欧美videos精品| 午夜激情在线观看视频| 午夜精品理论片| 成人v精品蜜桃久久一区| 成人免费视频网站在线看| 久久久久久中文| 在线视频一区二区三区| 在线91免费看| 99re免费视频精品全部| 日韩午夜电影网| 欧美黑人xxxx| 国产精品毛片久久久久久久| 日韩欧美影院| 日本啊v在线| 亚洲人一区二区| 亚洲精品国产suv| 99精品视频中文字幕| 日韩精品一区二区三区中文字幕 | 亚洲人成无码网站久久99热国产| 欧洲精品视频在线观看| 精品国产乱码| 黄色软件在线| 成人91视频| 精品欧美一区二区三区| 欧美日韩在线网站| 伊人网站在线| 国产91aaa| 中文字幕久热精品在线视频| 成人激情小说乱人伦| 日韩黄色三级| 超碰在线首页| 精品伊人久久大线蕉色首页| 欧美一区二区三区四区在线观看| 成人午夜高潮视频| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 18av在线播放| 国产黄视频在线| 99在线观看视频网站| 亚洲午夜久久久久久久| 亚洲欧美日韩国产一区二区三区 | 九色porny丨国产精品| 老司机在线精品视频| 成人在线高清视频| 妺妺窝人体色www看人体| 欧美亚洲国产视频| 欧美刺激午夜性久久久久久久| 久久久久久久久久久久久夜| 亚洲一级黄色| aaa国产精品视频| 色av手机在线| 亚洲精品少妇久久久久久| 日本免费成人网| www.成人av|