java-在Comparator.comparing中转换为可序列化

这个问题已经在这里有了答案:            >            Why does Java 8’s Comparator.comparing() cast the return value to Serializable?                                    1个
看着java.util.Comparator in the JDK 8 source code,我发现了有趣的代码:

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可序列化.

上一篇:设计模式-策略模式


下一篇:Java集合排序的绑定不匹配