点进去,调用Enhancor父类的静态代码块
继续往下走,调用Enhancer的静态代码块,创建EnhancerKey
点进去
点进去
点进去
点进去
走到ClassLoaderData类中的对应如下方法
这里式现将GET_KEY对应的函数式接口创建好,方便接下来执行ClassLoaderData方法创建LoadingCache时候要传进来的参数GET_KEY
点进去
由参数可以看出,LoadingCache存储着两个Function类型的函数式接口,一个是Generic所包含的key值,如上图。另一个是用来返回具体的Class对象。
get方法点进去
get方法点进去
一个个apply方法
点进createEntity
点进去
上图反悔了生成器Generator.退出这个方法
返回退出这个方法
返回退出这个方法
到这里KeyFactory对象实例化完成。
总由图可以看到这个代理对象里面的属性值都是默认值,如果想调用代理方法需要对这几个属性进行设置。
下面是创建自定义的代理对象的部分。把断点打到这
点进去
点进去,可以看到这个创建的代码和创建KeyFactory时的代码是一样的
点进去
点进去
点进去
apply方法点进去
点进createEntity
点进去
到此就生成了一个代理的Class文件,返回
点进去
到此代理对象就创建完成了。返回
返回
返回
接下来看一下myCaculate.add方法的实现
点进去
点进去