Java Bean 为什么必须要有一个无参构造函数?

简介: JAVA EE 中,JavaBean 是一个很重要的概念,而 JavaBean 还有以下的使用习惯。首先我们知道,有两种方法为java对象中的元素赋值:

image.png

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.


相关文章
|
3月前
|
Java
【Java基础面试三十四】、接口中可以有构造函数吗?
这篇文章讨论了Java中接口不能包含构造函数的原因,主要解释了接口中的成员变量默认是public static final类型的常量,不需要通过构造函数初始化,且接口本身不能被实例化,因此构造函数在接口中没有意义。
|
6月前
|
搜索推荐 Java 开发者
org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 问题处理
【5月更文挑战第14天】org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 问题处理
371 1
|
21天前
|
Java 编译器
【编程基础知识】详解Java构造函数
构造函数是与类同名且不带返回值的特殊函数,用于对象初始化。它可以是无参或有参的,支持重载。若未自定义构造函数,编译器会提供默认的无参构造函数。子类构造函数会先调用父类的构造函数,确保父类对象先被创建。构造函数的主要作用是初始化对象的存储空间、调用父类构造函数和初始化成员变量。
18 0
|
2月前
|
Java 开发者
【Java编程新纪元】JDK 22:超级构造函数来袭,super(...) 前导语句改写编程规则!
【9月更文挑战第6天】JDK 22的超级构造函数特性是Java编程语言发展史上的一个重要里程碑。它不仅简化了代码编写,还提升了代码的可读性和维护性。我们有理由相信,在未来的Java版本中,还将有更多令人兴奋的新特性等待我们去发现和应用。让我们共同期待Java编程新纪元的到来!
|
3月前
|
Java 开发者
什么是 Java 中的构造函数链?
【8月更文挑战第21天】
28 1
|
3月前
|
Java Spring 容器
Java SpringBoot 中,动态执行 bean 对象中的方法
Java SpringBoot 中,动态执行 bean 对象中的方法
39 0
|
3月前
|
Java Spring
Java SpringBoot Bean InitializingBean 项目初始化
Java SpringBoot Bean InitializingBean 项目初始化
52 0
|
4月前
|
存储 前端开发 Java
Java中的不同Bean作用域
【7月更文挑战第5天】
44 0
Java中的不同Bean作用域
|
4月前
|
安全 Java 程序员
【Java探索之旅】多态:向上下转型、多态优缺点、构造函数陷阱
【Java探索之旅】多态:向上下转型、多态优缺点、构造函数陷阱
40 0
|
5月前
|
Java 持续交付 Maven
Java报错:Missing ServletWebServerFactory bean,如何解决
Java开发中遇到`Missing ServletWebServerFactory bean`错误?该问题可能由依赖冲突、配置问题或环境不一致引起。解决方法包括:检查依赖版本一致性、修复配置错误、确保环境匹配,以及查看IDE中的JRE配置。预防这类问题,可采用版本管理工具、CI/CD流程、代码审查和社区学习。木头左提醒,记得点赞和分享,下次见!
Java报错:Missing ServletWebServerFactory bean,如何解决