java - self 比较接口(interface)在集合类中做什么?

标签 java generics collections interface marker-interfaces

在练习反射时,我开始了解 Collections 类中的 SelfComparable Interface

interface java.util.Collections$SelfComparable

这个接口(interface)有什么用?

最佳答案

它什么都不做。它是私有(private)的,因此您无法导入它。

真的是注释说类型是“SelfComparable”,实际上并没有使用。

没有实现这个接口(interface)。使用它的代码依赖于它将在运行时被丢弃的事实。

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);

因为它将在运行时被忽略。

关于java - self 比较接口(interface)在集合类中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18633408/

相关文章:

java - iceWm 窗口管理器窗口问题

java - 泛型与方法重载

.net - 如何从 wcf 服务中检索未知类型?

c# - 我如何创建一个通用类型,其中 T 也可以是 int32,但不仅是一个类

java - Collections.max() 不正确的参数

collections - 在 Magento 中按两个类别过滤产品集合

java - 如何用java编写自己的比较器类?

java - 生成 Jar 的 Ant 脚本 - 未找到引用错误

java - 算法运行时间分析

java - 如何为我的乒乓球获得一个移动的矩形?