Comparator.comparing-da Serializable-ga uzatish [duplikat]

java.util.Comparator JDK 8 manba kodida, men qiziqarli kodni topdim:

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));
    }

Olingan lambdani nima uchun Comparator<T> ga quyayotganimiz juda aniq, lekin uni Serializable ga quyishdan maqsad nima?


person Andrii Abramov    schedule 22.03.2017    source manba
comment
Aloqador: stackoverflow.com/questions/22807912/how-to -serialize-a-lambda -- va Oracle amaliyotni qanday qat'iy rad etishiga e'tibor bering: docs.oracle.com/javase/tutorial/java/javaOO/ -- bu kodni qayerdan topdingiz?   -  person slim    schedule 22.03.2017
comment
@slim kod java.util.Comparator dan olingan   -  person Eugene    schedule 22.03.2017
comment
Qiziqarli. Mening taxminimcha, agar ular buni qilmasalar, hech kim hech qanday sinfni, agar unda solishtiruvchi bo'lsa, seriyali qilib bo'lmaydi (yoki ular qo'shimcha kuch sarflashlari kerak). Lekin men hech qachon serialize() dan ko'p foydalanmaganman, shuning uchun yanada ishonchli javobni kutaman.   -  person slim    schedule 22.03.2017
comment
stackoverflow.com/questions/41500021/ ga o'tkazing   -  person Alexis C.    schedule 22.03.2017


Javoblar (1)


Ya'ni, men bilganimdek, lambda seriyasiniyaratmoqda.

person Eugene    schedule 22.03.2017
comment
Mutlaqo to'g'ri. Lekin maqsad nima? - person Andrii Abramov; 22.03.2017
comment
@AndriiAbramov Men taxmin qilamanki bu solishtirgichdan foydalanadigan ba'zi turlarni ketma-ketlashtirish bilan bog'liq. TreeSet yoki PriorityQueue deb aytaylik. - person Eugene; 22.03.2017
comment
@AndriiAbramov, aftidan, bu avval so'ralgan edi, shunchaki topdim: stackoverflow.com/questions/8642012/ni amalga oshirish - person Eugene; 22.03.2017
comment
Hmm.. Ha. Bu mantiqiy. Men buni dublikat sifatida yopaman. Shunga qaramay, +1! - person Andrii Abramov; 22.03.2017
comment
@AndriiAbramov siz ham buni qabul qilishingiz mumkin :) - person Eugene; 22.03.2017