在比较器中转换为可序列化



查看JDK 8源代码中的java.util.Comparator,我发现了有趣的代码:

public static <T, U extends Comparable<? super U>> Comparator<T> comparing(Function<? super T, ? extends U> keyExtractor){
        Objects.requireNonNull(keyExtractor);
        // casting to Serializable?
        return (Comparator<T> & Serializable)
            (c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2));
    }

很明显为什么我们要将生成的 lambda 转换为 Comparator<T> ,但是将其转换为 Serializable 的目的是什么?

这使得 lambda 序列化据我所知。

最新更新