SerializedLambda 的签名如下:
SerializedLambda(类 captureClass,字符串功能接口类,字符串功能接口方法名,字符串功能接口方法签名,int implMethodKind,字符串 implClass,字符串 implMethodName,字符串 implMethodSignature,字符串实例化方法类型,对象 [] captureArgs)
现在,我可以看到捕获类是一个deserializeLambda
:
SerializedLambda 有一个 readResolve 方法,该方法在捕获类中查找名为 $deserializeLambda$(SerializedLambda) 的(可能是私有的)静态方法,并以自身作为第一个参数调用该方法
但我没有明白implClass
它的用途。
获取包含实现方法的类的名称。
捕获类不就是有实现方法的吗?我尝试序列化 lambda 函数以查看这些字段包含哪些值,但它们具有相同的类。implClass
和 和有什么不一样capturingClass
?