java - 比较器如何功能接口?
问题描述
根据功能接口的定义 -功能接口是只包含一个抽象方法的接口。
但是Comparator<T>
有两个抽象方法:
int compare(T o1, T o2);
boolean equals(Object obj);
其他是默认的和静态的。
JavaDocs 将其称为功能接口。怎么会这样?
解决方案
您正在阅读错误的定义,或者至少是(过度)简化的定义。
FunctionalInterface 的正确定义是:
函数式接口是只有一个抽象方法(除了 Object 的方法)的接口,因此代表一个单一的函数契约。这种“单一”方法可以采用多个抽象方法的形式,这些方法具有从超接口继承的重写等效签名;在这种情况下,继承的方法在逻辑上代表一个方法。
推荐阅读
- ubuntu - kubernetes pod 中的核心转储大小为 0
- python - LabelEncoder().fit() 是做什么的?
- android - Android 应用程序在尝试使用 ?attr/variable 时崩溃
- python - 如何并行运行 Selenium-scrapy
- machine-learning - 用于训练对象检测模型的训练集中的重复对象
- powershell - Windows Powershell 'if' 总是返回 $true - 我做错了什么?
- javascript - 如何优化下面的过滤器逻辑以仅使用 1 个循环而不是 2 个?
- sqlite - SQLite 中的 TEXT NOT NULL UNIQUE 列是否有字符长度限制?
- webserver - 无法将 Caddy 服务器配置为将 TLS 与我的域名一起使用
- java - Tomcat 9 错误 - mysql-cj-abandoned-connection-cleanup