为了账号安全,请及时绑定邮箱和手机立即绑定

添加女生时,为什么将原有的参数换成Girl对象也可以呢?

http://img1.sycdn.imooc.com/59dec75300010e1812170527.jpg

http://img4.sycdn.imooc.com/59dec7560001d08215240761.jpg

这两个参数不是一一对应的么

正在回答

2 回答

如果参数是对象的话,Spring会将url中的参数自动装配到这个对象中,前提是这个类要有一个无参的构造方法,且成员变量的名称要和url中的参数名称一致,并且设置了set方法。

例如:Girl类中有一个cupSize的成员变量,URL中有参数cupSize=C,那么Spring就会先创建一个Girl对象的实例,并调用这个对象的setCupSize("C")方法,将信息注入到这个对象中。

3 回复 有任何疑惑可以回复我~
#1

栗喵 提问者

嗯嗯 这个类的无参构造方法在这个过程中的作用是什么 为什么要显示声明一个无参的构造方法呢 虚拟机不是会为每个类隐式声明该类的无惨构造方法么?为什么spring不使用这个构造方法呢
2017-10-12 回复 有任何疑惑可以回复我~
#2

栗喵 提问者

非常感谢!
2017-10-13 回复 有任何疑惑可以回复我~

Spring 注入时内部使用的应该是反射,

Girl.class.newInstance();

内部使用的是这种方式来创建一个实例,需要无参的构造方法。

至于无参构造方法,我想说的是,如果你在类中定义了有参的构造方法,而未显示编写无参的构造方法,那么编译器不会添加无参的构造方法。

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

添加女生时,为什么将原有的参数换成Girl对象也可以呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信