Dalam java8, apakah maksud logik dan & simbol apabila digunakan pada kelas antara muka?
ringa_lee
ringa_lee 2017-05-17 09:58:41
0
1
753

Baru-baru ini saya membaca kod sumber Java yang berkaitan dengan ungkapan lambda, dan menemui banyak kaedah penulisan yang serupa dalam kaedah statik Comparator

java.util.Comparator
...
 public static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor) {
        Objects.requireNonNull(keyExtractor);
        return (Comparator<T> & Serializable)
            (c1, c2) -> Integer.compare(keyExtractor.applyAsInt(c1), keyExtractor.applyAsInt(c2));
    }

Antaranya return (Comparator<T> & Serializable)应该是表示类型强转,但是这里为什么不直接转换成Comparator<T>, tapi guna logik dan simbol?

ringa_lee
ringa_lee

ringa_lee

membalas semua(1)
phpcn_u1582

Ini bermakna penukaran paksa kepada Comparator<T>Serializable
Anda boleh membaca penjelasan ini

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan