@Override public Kryo createMapper() { final Kryo kryo = new Kryo(new GryoClassResolver(), new MapReferenceResolver(), new DefaultStreamFactory()); kryo.addDefaultSerializer(Map.Entry.class, new EntrySerializer()); kryo.setRegistrationRequired(registrationRequired); kryo.setReferences(referenceTracking); serializationList.forEach( p -> { final Function<Kryo, Serializer> serializer = p.getValue1(); if (null == serializer) kryo.register(p.getValue0(), kryo.getDefaultSerializer(p.getValue0()), p.getValue2()); else kryo.register(p.getValue0(), serializer.apply(kryo), p.getValue2()); }); return kryo; }