Java Bean 為什么必須要有一個無參構造函數?


作者:西奧多先生
https://segmentfault.com/a/1190000012940879

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.

推薦去我的博客閱讀更多:

1.Java JVM、集合、多線程、新特性系列教程

2.Spring MVC、Spring Boot、Spring Cloud 系列教程

3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

4.Java、后端、架構、阿里巴巴等大廠最新面試題

覺得不錯,別忘了點贊+轉發哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM