2013-09-05 69 views

Trả lời

7

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.

+1

không làm -> không làm gì? – Kent

+0

@Điều đó có nghĩa là gì :) – Prateek

+0

@Prateek nó có nghĩa là tôi trộn lẫn các từ của tôi. :) –

2

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.

Các vấn đề liên quan