java序列化lambda函数的映射
我有Type2 extends Type1
我有一张功能图:
private final Map<String, Consumer<Type1>> functionMap;
{
functionMap = new HashMap<>();
functionMap.put("test", (Type1 t) -> evalSessionSetupReq((Type2) t));
}
很好。但是当我试图序列化该映射时,我得到了一个NotSerializableException
异常
我试着用:
functionMap.put("test", (Serializable)(Type1 t) -> evalSessionSetupReq((Type2) t));
但它不起作用
如何序列化这样的lambda函数映射
# 1 楼答案
我认为可以将lambda转换为函数接口和
Serializable
的交叉点,使其可序列化。试试这个: