问答详情
源自:1-3 实现一个自己的IoC

java.lang.IllegalArgumentException: wrong number of arguments

https://img3.mukewang.com/5cfdcacc0001bb9608180646.jpg

如图,当setBean 不传参数beanId的时候,就会报这个错误,大概是说传入的参数本来是3个,但我只传了2个。虽然不传不会报语法错,但运行时就报错,我觉得可能跟老师的约定有关,约定了通过构造器去注入,而zhangsan,lisi这2个类都继承了humenwithcar,并没有使用默认构造器,且传入了bean参数。所以不传参数id就会报错,而audi,buick 这2个类并没有向构造器中传入bean参数,使用的是默认构造器。所以不传参数不会报错。所以在老师代码基础上加了一段话:

https://img4.mukewang.com/5cfdd78600013c9907770790.jpg

提问者:qq_了不起的岁月_0 2019-06-10 12:08

个回答

  • qq_了不起的岁月_0
    2019-06-10 12:12:59

    本身老师在课程中就讲了 张三,李四是需要车的,所以必然要传入一个车的依赖bean。但我一开始没有在ioc中注入car,违反了课程中的约定。所以报错。