Java Bean 为什么必须要有一个无参构造函数?
JAVA EE 中,JavaBean 是一個很重要的概念,而 JavaBean 還有以下的使用習慣。
首先我們知道,有兩種方法為java對象中的元素賦值:
1. 通過類的帶參數構造函數的方法
2. 通過類的set方法
在 JavaBean 里,一般參數在4個以上的,極不推薦使用帶參數構造函數賦值:
1. ?對于一個實體類,對于多個參數,降低可讀性
2. 需要記住構造參數的順序
3. 一個參數無效就會造成整個構造函數失效
4. 當我們要添加新的屬性時,不僅要傳參數,還要修改構造函數,同時之前所有的構造都要修改
5. 必須在對象創建之前給參數賦值,而不可以在對象創建后賦值
使用set方法的優勢:
?1.? 我們可以顯式的看到賦值元素的名稱
?2. 可以以任何順序賦值
?3. 可以忽略一些元素的初始化
?4. 添加新屬性時,不需要修改類
?5. 可以在對象創建后賦值
所以對于javaBean,最好的方法就是只定義一個無參數構造函數,然后用set方法來賦值,最后復習一下類的構造器概念:
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();一個類可以重載多個構造函數,只要他們的參數不同,當沒有申明構造函數時,java將自動創建構造函數,若已申明帶參數構造函數,必須申明無參數構造函數 否則當你調用無參數構造函數時,將會編譯錯誤對于一個普通的沒有父類的類:
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
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Java Bean 为什么必须要有一个无参构造函数?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微服务架构,如何做分布式,通用缓存机制?
- 下一篇: 美图每天亿级消息存储演进——从Redis