SelfComparable Interface
在练习反思时,我在Collections
课堂上了解到
interface java.util.Collections$SelfComparable
这个接口有什么用?
SelfComparable Interface
在练习反思时,我在Collections
课堂上了解到
interface java.util.Collections$SelfComparable
这个接口有什么用?
它什么也没做。它是私有的,因此您无法导入它。
确实是注释类型是“SelfComparable”并且没有实际使用。
没有实现这个接口。使用它的代码依赖于它将在运行时被丢弃的事实。
public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) {
if (comp==null)
return (T)max((Collection<SelfComparable>) (Collection) coll);
本来可以
public static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp) {
if (comp==null)
return (T)max(/*SelfComparable*/ (Collection) coll);
因为它将在运行时被忽略。
从来源:
private interface SelfComparable extends Comparable<SelfComparable> {}
这只不过是一个标记 over Comparable<SelfComparable>
,这基本上意味着它是与 self 进行比较的可比对象的标记。它的使用有些多余。
它被用作:
return (T)min((Collection<SelfComparable>) (Collection) coll);
在第 662 行,它基本上将一个集合强制转换为Collection
,然后将泛型参数强制转换为SelfComparable
仅扩展的 a Comparable
。