JavaBean是一個標準,遵循標準的Bean是一個帶有屬性和getters/setters方法的Java類。
JavaBean的定義很簡單,但是還有有一些地方需要注意,例如Bean中含有boolean類型的屬性。我們知道對于一個屬性來說,如果其命名為test,那么其getter和setter方法一般為getTest()和setTest。但是如果test為一個布爾類型,那么其getter和setter方法為isTest()和setTest()。這是一個區(qū)別
public?class?BeanTest?{private?boolean?test;public?boolean?isTest()?{return?test;????}????public?void?setTest(boolean?test)?{????????this.test?=?test;????}}
如果我們將這個屬性名換為isTest,那么其生成的getter和setter方法,居然和屬性為test時的一樣
public?class?BeanTest1?{????private?boolean?isTest;?????public?boolean?isTest()?{????????return?isTest;????}????public?void?setTest(boolean?test)?{????????isTest?=?test;????}}
這個區(qū)別在一般的情況下是沒有影響的,但是如果涉及到和json串之間的轉(zhuǎn)換,就得注意了。例如,如果我將上面的兩個Bean的對象Json化,其結果居然是一樣的
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該怎么定義呢?這時候我們不該依賴于IDEA自動幫我們生成,我們必須手動編寫:
public?class?Bean3{private?boolean?isTest;public?boolean?getIsTest(){return?isTest;????}????public?void?setIsTest(boolean?isTest){????????this.isTest?=?isTest;????}}
雖然這樣生成了我們想要的json串,但是這樣沒有遵循Java規(guī)范,感覺很別扭。。。。我們可以使用 JSONField來指定json化后對應的字段名
另外,如果屬性是boolean的包裝類型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類型和boolean類型屬性的get和set方法也是有差別的。
總的來說,為了避免麻煩,不管是定義Boolean類型的屬性,還是定義boolean類型的屬性,其字段名不要使用isXXX這種方式,然后按照Bean規(guī)范生成get和set方法就好了
Java布爾類型:http://www.bjpowernode.com/tutorial_java_se/75.html
以上就是天津卓眾教育java培訓機構的小編針對“Javabean中布爾類型怎么用,注意哪些”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。