最近在用Spring依赖注入时,并使用setter时发现如果你在该类写了一个有参构造函数时,而不写无参构造函数时,运行是会报错未找到默认构造函数的。
加上一个无参构造函数就行了。
我们都知道Spring容器创建对象时默认会调用无参构造函数,但是你写了一个构造函数不管是有参还是无参。默认的无参构造函数就没有了。所以才会报错。

再来补充一下java基础知识吧。
1.当类中没有写构造函数时,java会自己帮你生成一个默认的且是无参的构造函数。(此时在使用spring下有参无参构造函数都可不写)
2.如果写了构造函数,不管是有参还是无参,java都不会帮你生成一个默认的无参构造函数。(所以此时spring的Javabean必须再写一个无参构造函数)
3.在继承方面:子类会默认生成一个无参构造函数并会以super();的调用父类的无参构造函数。这代表着如果父类没有写无参构造函数,运行时就会报错!

如果有地方可能会调用到本类的无参构造函数时,如果你写了构造函数但是没有写就会报错。所以一般为JavaBean时,除了写getter和setter外,还要生成有参和无参构造函数,当然加个toString最好。

spring的Javabean的无参构造函数什么时候一到要写相关推荐

  1. Java一种错误的实例化方法:在默认无参构造函数中进行实例化

    Java一种错误的实例化方法:在默认无参构造函数中进行实例化 代码如下: package Construction_test;public class A {static int i=0;public ...

  2. Spring获取JavaBean的xml形式和注解形式

    Spring获取JavaBean的xml形式和注解形式 文章目录 一.用xml文件方式管理JavaBean 1. 创建一个xml配置文件 2. 将一个Bean交由spring创建并管理 3. 获取Sp ...

  3. 抽象类的有参与无参构造函数的研究

    即使我们声明一个没有构造函数的抽象类,编译器还会为我们生成一个默认的保护级别的构造函数.子类实例化时(不管是否为带参构造)只会调用所有父类的无参构造函数,而带参构造必须通过显式去调用.调用顺序是先调用 ...

  4. 解决MVC运行controller的时候只有有参构造函数但是程序一定要走无参构造函数的方法

    解决MVC运行controller的时候只有有参构造函数但是程序一定要走无参构造函数的方法 参考文章: (1)解决MVC运行controller的时候只有有参构造函数但是程序一定要走无参构造函数的方法 ...

  5. 关于lombok和mapstruct整合报无参构造函数错误

    调整lombok的版本,lombok使用1.16.10版本时可能会报无参构造函数的错误,将lombok的版本改为1.16.20

  6. java的无参构造方法_Java的无参构造函数用法实例分析

    本文实例讲述了Java的无参构造函数用法.分享给大家供大家参考,具体如下: 一 点睛 1 如果一个类没有定义任何构造函数,那么该类会自动生成1个默认的构造函数.默认构造函数没有参数. 2 如果一个类定 ...

  7. 无参构造函数和有参构造函数在创建对象时初始化的使用

    类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行. 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void.构造函数可用于为某些成员变量设置初始值. 默认 ...

  8. 构造代码块、静态代码块、无参构造函数和有参构造函数的执行顺序

    一直对构造代码块.静态代码块.无参构造函数和有参构造函数的执行顺序和执行次数混淆不清,所以记录一下它们的执行顺序以及执行次数.记录的不是很详细,留待补充. 代码: package com.yoko.t ...

  9. java 无参构造函数的作用

    要是父类没有写构造函数,系统会默认隐式生成无参构造函数,如果父类写了有参构造函数,那么系统不会默认生成无参构造函数. java中,在执行子类的构造函数之前,如果没有用super()调用父类的构造函数, ...

最新文章

  1. 未读消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~
  2. asr1601芯片平台实现ssl加密的websocket
  3. mysql时长用什么类型_MySQL 日期时间类型怎么选?千万不要乱用!
  4. 退出智能手机业务后 LG电子仍将提供最多三年操作系统升级
  5. Kubernetes详解(十九)——Kubernetes Pod控制器
  6. 最新人生感悟语句摘选
  7. 开源电脑屏幕录制软件Captura源码下载及编译(Win10,VS2022)
  8. azw3 netty权威指南_小程序,巧应用(pdf+epub+mobi+txt+azw3)
  9. libtorrent安装windows版
  10. Photoshop利用快速蒙版抠图方法
  11. wps居中对齐不在中间_wps怎么把字水平居中对齐
  12. 视觉SLAM⑧----视觉里程计Ⅱ(光流法与直接法)
  13. 【MySQL】页面上查询时间与数据库中时间相差13个小时原因及解决办法
  14. 亚特兰提斯之帝国的遗址
  15. 软考中计算机软件考什么,计算机软考要考什么
  16. Cutecom无法打开USB串口
  17. 【Unity】碰撞检测
  18. MySQL:让表的时间字段在insert和update时自动更新
  19. 查看phpinfo方法
  20. Vue<一>互动教程

热门文章

  1. 圆形的头像 会有锯齿
  2. 用Java输出等腰三角形
  3. java中next()和nextline()用法区别
  4. 一文详解shell编程(shell编程笔记)
  5. 中国HPC服务器销售额,中国HPC大起底
  6. sqlite错误 The database disk image is malformed database disk image is malformed 可解决
  7. js给元素添加class样式
  8. 利用分治法求两个有序数组的中位数
  9. (学习总结)vue组件之间传值方式
  10. Python格式化输出10进制和16进制