请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

11.39 这里说的匿名类,看不懂代码,帮看看

Object scopedInstance = scope.get(beanName, () -> {
							beforePrototypeCreation(beanName);
							try {
								return createBean(beanName, mbd, args);
							}
							finally {
								afterPrototypeCreation(beanName);
							}
						});

翔仔老师,这个匿名类,我只知道是ObjectFactory的实现类,但是看不懂这几行代码啥意思,
beforePrototypeCreation(beanName) |
createBean(beanName, mbd, args) |
afterPrototypeCreation(beanName) 这三个方法不是都在AbstractBeanFactory类里面吗,为什么匿名类可以这样直接调用?是不是说这个匿名类,同时实现了ObjectFactory 和 AbstractBeanFactory ,然后在ObjectFactory#getObject中调用了上述的三个方法呢?我要咋验证这段代码的效果呢

正在回答 回答被采纳积分+3

1回答

翔仔 2023-01-11 16:38:12

同学好,11:39没有这个东西呀,点进去看看ctrl+左键点进去afterPrototypeCreation看看是否属于 AbstractBeanFactory 这个类,然后这个匿名类是哪里的?匿名类是能引用外部类的方法的

0 回复 有任何疑惑可以回复我~
  • 提问者 慕哥6062902 #1
    AbstractBeanFactory#doGetBean方法里面,视频代码的405行,上面我说的三个方法,都在AbstractBeanFactory声明的,只是我不理解,为什么这个匿名类(实现了ObejctFactory)为什么可以直接调用
    回复 有任何疑惑可以回复我~ 2023-01-11 16:57:13
  • 提问者 慕哥6062902 #2
    谢谢老师,最后这句话回答我了,因为我在debug时,确实发现这个匿名类跟AbstractBeanFactory没有任何关系,但是没想到居然可以这么操作。
    回复 有任何疑惑可以回复我~ 2023-01-11 17:06:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信