Podczas uprawiania refleksji doszedłem wiedzieć o SelfComparable Interface
w Collections
klasyCo robi samopozytywny interfejs w klasie Kolekcje?
interface java.util.Collections$SelfComparable
Co to obsłudze interfejs?
Podczas uprawiania refleksji doszedłem wiedzieć o SelfComparable Interface
w Collections
klasyCo robi samopozytywny interfejs w klasie Kolekcje?
interface java.util.Collections$SelfComparable
Co to obsłudze interfejs?
Nic nie robi. Jest prywatny, więc nie możesz go zaimportować.
To naprawdę komentarz, że typ jest "SelfComparable" i nie jest faktycznie używany.
Nic nie implementuje tego interfejsu. Kod, który go używa, polega na tym, że zostanie on odrzucony w czasie wykonywania.
public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) {
if (comp==null)
return (T)max((Collection<SelfComparable>) (Collection) coll);
mogło
public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) {
if (comp==null)
return (T)max(/*SelfComparable*/ (Collection) coll);
jak to będzie ignorowany przy starcie.
Od source:
private interface SelfComparable extends Comparable<SelfComparable> {}
To nic więcej niż marker nad Comparable<SelfComparable>
, co w zasadzie oznacza, że jest to marker dla porównawczych, które porównują do siebie. Jego użycie jest nieco zbyteczne.
Jest używany jako:
return (T)min((Collection<SelfComparable>) (Collection) coll);
na line 662 gdzie w zasadzie rzuca kolekcję Collection
, a następnie wykonuje obsady dla parametru generic być SelfComparable
który właśnie rozciąga Comparable
.
ma -> nie robi? – Kent
@Kent co to znaczy :) – Prateek
@Prateek to oznacza, że pomieszałem moje słowa. :) –