使用java Bean時,is打頭的boolean屬性的小坑

申明屬性,而後用idea自帶的Generator生成getter,setter(封裝類型和基本數據類型生成的還不同),以下: json

當我去構造一個PropertyDescriptor時,會報錯ide

後來跟代碼,發現,報錯緣由是PropertyDescriptor的構造函數去找一個叫setIsSuccess的寫值函數時,發現找不到,因而報錯了。函數

從上圖能夠看到,實際在構造PropertyDescriptor時,它會嘗試去尋找一個叫isIsSuccess的讀函數,一個叫setIsSuccess的寫函數。當isIsSuccess沒找到時,它會嘗試去找叫getIsSuccess的讀函數,若是仍是沒找到,則拋出異常。當setIsSuccess沒找到時,也會拋出異常。idea

試了一下發現,用idea自動生成getter,setter只有在使用is打頭的boolean時有這個問題(封裝類型和基本數據類型都有問題),其餘數據類型沒有這個問題。3d

這方面的問題有時還涉及到json轉換,因此在處理布爾類型數據時,又用is打頭來命名時,不要使用idea自動生成getter和setter。另外,行業裏好像比較合理的作法是禁止Bean裏用is打頭申明boolean類型的變量。blog

相關文章
相關標籤/搜索