慕侠7252517
humen这个类名首字母要大写
桑桑的草莓酸奶
建议直接从老师写的代码意义上理解就好了,理解【getConstructors()】这个方法的作用后,其实不难理解老师的用意。
【1】:getConstructors() 这个方法会返回类的所有public的构造函数。 结合老师的循环,并且异常不处理 可以理解到:其实老师是把循环类的所有构造函数都执行一次,直到拿到其中1个匹配构造函数输入参数的对象。 如果还是为Null,就抛出错误说没有找到对应构造函数,即没有获取到需要实例化的对象。 【备注】:【newInstance(需要实例化对象的构造方法参数)】这个方法会根据你填充的参数,去运行类的构造函数,如果参数不匹配将会报错。
如果实在不能理解的话,建议简单理解反射就是通过指定类的Class类型,然后得到你需要创建的对象就好了。
椎间盘
我知道了,是我在类Audi和buick 没有加car这个接口。
桑桑的草莓酸奶
spring中的bean是java实例与java组件;
传统中java应用的中的bean通常作为model,用来封装值对象在各层之间的传递。。
慕侠8223200
约定,先setbean(车),后setbean(有车的人) 。如setbean(车)的时候 不会走for里面的代码,setbean(有车的人) 的时候,才会把前边放进去的aodi当作这次setBean(有车的人)的开奥迪张三的参数 也就是aodi作为张三的参数。
Moluu
已解决.......又提了个不是问题的问题
Moluu
已解决是我太笨比了只会跟着敲,连删都没删一下?
慕斯卡6507923
这是你的代码出了问题
weixin_慕粉9302207
空指针,getbean("zhangsan ") -> getBean("zhangsan"), 都了空格
Daydaydream
当前类私有属性本来就是使用private,protected的作用域会导致安全溢出。
sadcloud
教材里的代码会获取所有构造函数,然后执行一遍。但是符合条件的只能有一个,所以不会有多个实例
慕娘6325695
我是小泽呀
要先创建maven工程
慕瓜1587760

在test中创建IoCTest.java
慕侠4586337
你的IOC容器放置位置不对,解决办法:把你的IOC类移动到java包下,和car包、human包同级。
qq_慕后端4062914
创建maven项目就会自动创建出来pom.xml文件了
qq_幕布斯0004490
楼上正解?
慕仙9216022
一般用接口占位,更好的体现封装性
qq_慕码人5248226
直接在参数写入“audi”就可以了,不需要打“bean:”
慕无忌3694376
你是不是before方法没加ioc.setBean(LiSi.class,"lisi","buick");

qq_小破城_0
set方法有多个重载形式
慕无忌3694376
应该怎么修改
xintf
想好好学习的懒人
把代码贴上来,或者你自己打断点看
qq_岁月催人老_2
map已经在before方法中赋过值了。before方法由于加了注解@Before,因此它会在test方法执行前执行。
qq_慕移动5102182
需要的 id 是唯一的啊
qq_了不起的岁月_0
本身老师在课程中就讲了 张三,李四是需要车的,所以必然要传入一个车的依赖bean。但我一开始没有在ioc中注入car,违反了课程中的约定。所以报错。
人生白月
我解决了!
陈齿齿
具体到报错的某一行代码,能不能看下代码呢?
向日晓葵
因为最后一个参数 是一个可变参数 是数组的形式