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

来源:8-3 夺取doGetBean之剩余逻辑的扫荡

慕哥6062902

2023-01-08

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中调用了上述的三个方法呢?我要咋验证这段代码的效果呢

写回答

1回答

翔仔

2023-01-11

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

0
2
慕哥6062902
谢谢老师,最后这句话回答我了,因为我在debug时,确实发现这个匿名类跟AbstractBeanFactory没有任何关系,但是没想到居然可以这么操作。
2023-01-11
共2条回复

剑指Java自研框架,决胜Spring源码

快速入门Spring核心源码+从零开发自研框架

1499 学习 · 495 问题

查看课程