更新時(shí)間:2020-09-10 16:10:28 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2725次
JavaBean是一個(gè)標(biāo)準(zhǔn),遵循標(biāo)準(zhǔn)的Bean是一個(gè)帶有屬性和getters/setters方法的Java類(lèi)。
JavaBean的定義很簡(jiǎn)單,但是還有有一些地方需要注意,例如Bean中含有boolean類(lèi)型的屬性。我們知道對(duì)于一個(gè)屬性來(lái)說(shuō),如果其命名為test,那么其getter和setter方法一般為getTest()和setTest。但是如果test為一個(gè)布爾類(lèi)型,那么其getter和setter方法為isTest()和setTest()。這是一個(gè)區(qū)別
public?class?BeanTest?{
private?boolean?test;
public?boolean?isTest()?{
return?test;
????}
????public?void?setTest(boolean?test)?{
????????this.test?=?test;
????}
}
如果我們將這個(gè)屬性名換為isTest,那么其生成的getter和setter方法,居然和屬性為test時(shí)的一樣
public?class?BeanTest1?{
????private?boolean?isTest;
?
????public?boolean?isTest()?{
????????return?isTest;
????}
????public?void?setTest(boolean?test)?{
????????isTest?=?test;
????}
}
這個(gè)區(qū)別在一般的情況下是沒(méi)有影響的,但是如果涉及到和json串之間的轉(zhuǎn)換,就得注意了。例如,如果我將上面的兩個(gè)Bean的對(duì)象Json化,其結(jié)果居然是一樣的
public?static?void?main(String[]?args)?{
????System.out.println(JSON.toJSONString(new?Bean1()));?//{"test":false}
????System.out.println(JSON.toJSONString(new?Bean2()));?//{"test":false}
}
如果,我想要生成{“isTest”:false}這樣的Json串,那么我們的Bean該怎么定義呢?這時(shí)候我們不該依賴于IDEA自動(dòng)幫我們生成,我們必須手動(dòng)編寫(xiě):
public?class?Bean3{
private?boolean?isTest;
public?boolean?getIsTest(){
return?isTest;
????}
????public?void?setIsTest(boolean?isTest){
????????this.isTest?=?isTest;
????}
}
雖然這樣生成了我們想要的json串,但是這樣沒(méi)有遵循Java規(guī)范,感覺(jué)很別扭。。。。我們可以使用 JSONField來(lái)指定json化后對(duì)應(yīng)的字段名
另外,如果屬性是boolean的包裝類(lèi)型Boolean,那么JavaBean定義的getter和setter方法又為什么呢?
public?class?Bean4{
private?Boolean?test;
public?Boolean?getTest()?{
return?test;
????}
????public?void?setTest(Boolean?test)?{
????????this.test?=?test;
????}
}
public?class?Bean5{
????private?Boolean?isTest;
????public?Boolean?getTest()?{
????????return?isTest;
????}
????public?void?setTest(Boolean?test)?{
????????isTest?=?test;
????}
}
我們發(fā)現(xiàn)Boolean類(lèi)型和boolean類(lèi)型屬性的get和set方法也是有差別的。
總的來(lái)說(shuō),為了避免麻煩,不管是定義Boolean類(lèi)型的屬性,還是定義boolean類(lèi)型的屬性,其字段名不要使用isXXX這種方式,然后按照Bean規(guī)范生成get和set方法就好了
Java布爾類(lèi)型:http://m.ilovecolors.com.cn/tutorial_java_se/75.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Javabean中布爾類(lèi)型怎么用,注意哪些”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)