Я пытаюсь заполнить другую атомарную ссылку на основе существующего кэша.Я хочу использовать лямбды для простоты кода (требуется меньше кода котла), но, похоже, он не работает.
Это работает:
class PutFunction implements IFunction<Graph<Long,Long>,Graph<Long,Long>>{
private Long key;
public PutFunction(Long key) {
this.key = key;
}
public Graph<Long,Long> apply(Graph<Long,Long> graph){
graph.addVertex(key);
return graph;
}
}
getGraphCache().alter(new IFunction<Graph<Long,Long>,Graph<Long,Long>>(){
public Graph<Long,Long> apply(Graph<Long,Long> graph){
graph.addVertex(event.getValue().getId());
return graph;
}
});
Когда я переключаюсь на лямбда-синтаксис ниже, он выдает ошибку сериализации:
getGraphCache().alter((IFunction<Graph<Long, Long>, Graph<Long, Long>>) graph -> {
graph.removeVertex(event.getValue().getId());
return graph;
});
ОШИБКАcom.hazelcast.nio.serialization.HazelcastSerializationException: Failed to serialize 'com.portal.objects.ObjectGraphEntryListener$$Lambda$61/1840645556'
Кто-нибудь заставил его работать с лямбдами?
ObjectGraphEntryListener
hazelcast.xml