Java Bean 为什么必须要有一个无参构造函数?
JAVA EE 中,JavaBean 是一個(gè)很重要的概念,而 JavaBean 還有以下的使用習(xí)慣。
首先我們知道,有兩種方法為java對象中的元素賦值:
1. 通過類的帶參數(shù)構(gòu)造函數(shù)的方法
2. 通過類的set方法
在 JavaBean 里,一般參數(shù)在4個(gè)以上的,極不推薦使用帶參數(shù)構(gòu)造函數(shù)賦值:
1. ?對于一個(gè)實(shí)體類,對于多個(gè)參數(shù),降低可讀性
2. 需要記住構(gòu)造參數(shù)的順序
3. 一個(gè)參數(shù)無效就會(huì)造成整個(gè)構(gòu)造函數(shù)失效
4. 當(dāng)我們要添加新的屬性時(shí),不僅要傳參數(shù),還要修改構(gòu)造函數(shù),同時(shí)之前所有的構(gòu)造都要修改
5. 必須在對象創(chuàng)建之前給參數(shù)賦值,而不可以在對象創(chuàng)建后賦值
使用set方法的優(yōu)勢:
?1.? 我們可以顯式的看到賦值元素的名稱
?2. 可以以任何順序賦值
?3. 可以忽略一些元素的初始化
?4. 添加新屬性時(shí),不需要修改類
?5. 可以在對象創(chuàng)建后賦值
所以對于javaBean,最好的方法就是只定義一個(gè)無參數(shù)構(gòu)造函數(shù),然后用set方法來賦值,最后復(fù)習(xí)一下類的構(gòu)造器概念:
public?Bicycle(int startCadence, int startSpeed, int startGear) {gear?= startGear;cadence?= startCadence;speed?= startSpeed; } Bicycle?myBike = new Bicycle(30,?0,?8);public?Bicycle() {gear?=?1;cadence?=?10;speed?=?0; } Bicycle?yourBike = new Bicycle();一個(gè)類可以重載多個(gè)構(gòu)造函數(shù),只要他們的參數(shù)不同,當(dāng)沒有申明構(gòu)造函數(shù)時(shí),java將自動(dòng)創(chuàng)建構(gòu)造函數(shù),若已申明帶參數(shù)構(gòu)造函數(shù),必須申明無參數(shù)構(gòu)造函數(shù) 否則當(dāng)你調(diào)用無參數(shù)構(gòu)造函數(shù)時(shí),將會(huì)編譯錯(cuò)誤對于一個(gè)普通的沒有父類的類:
TO?a?class?that?has?not?a?explicit?super?class?then?it?has?an?implicit?superclass?of?Object,which?does?have?a?no-argument?constructor.
?
作者:西奧多先生
https://segmentfault.com/a/1190000012940879
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Java Bean 为什么必须要有一个无参构造函数?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微服务架构,如何做分布式,通用缓存机制?
- 下一篇: 美图每天亿级消息存储演进——从Redis