Trong khi tập luyện Reflection Tôi đến để biết về SelfComparable Interface
trong Collections
lớpGiao diện tự so sánh có thể làm gì trong Lớp sưu tập?
interface java.util.Collections$SelfComparable
gì sử dụng giao diện này cho?
Trong khi tập luyện Reflection Tôi đến để biết về SelfComparable Interface
trong Collections
lớpGiao diện tự so sánh có thể làm gì trong Lớp sưu tập?
interface java.util.Collections$SelfComparable
gì sử dụng giao diện này cho?
Nó không làm gì cả. Nó là riêng tư, do đó bạn không thể nhập nó.
Nó thực sự là một nhận xét rằng loại là "SelfComparable" và không thực sự được sử dụng.
Không có gì triển khai giao diện này. Mã sử dụng nó dựa trên thực tế nó sẽ bị loại bỏ khi chạy.
public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) {
if (comp==null)
return (T)max((Collection<SelfComparable>) (Collection) coll);
có thể là
public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) {
if (comp==null)
return (T)max(/*SelfComparable*/ (Collection) coll);
vì nó sẽ bị bỏ qua khi chạy.
Từ source:
private interface SelfComparable extends Comparable<SelfComparable> {}
Đây là gì khác hơn là một dấu hiệu trên Comparable<SelfComparable>
, mà về cơ bản có nghĩa là nó là một dấu hiệu cho pháp so sánh mà so sánh với bản thân. Việc sử dụng nó có phần dư thừa.
Nó được sử dụng như:
return (T)min((Collection<SelfComparable>) (Collection) coll);
trên line 662 nơi nó về cơ bản phôi một bộ sưu tập để Collection
, và sau đó thực hiện một dàn diễn viên cho tham số chung là một SelfComparable
mà chỉ kéo dài Comparable
.
không làm -> không làm gì? – Kent
@Điều đó có nghĩa là gì :) – Prateek
@Prateek nó có nghĩa là tôi trộn lẫn các từ của tôi. :) –