java - 接口(interface)和同类产品

标签 java android interface comparable

我有实现接口(interface)的对象,因此某些方法可用(getTime、getValue 等)。

但是,我也想使用 Comparable 强制这些对象以相同的方式进行排序,但我无法在界面中定义主体(至少在 Android Java 中)。

我能做什么?

最佳答案

您可以使用 default 关键字(不是签名的一部分)在接口(interface)中定义主体:

public interface MyInterface extends Comparable<MyInterface> {

    @Override
    default int compareTo(MyInterface other) {
        return 0;
    }

}
<小时/>

但是,如果您想不时地根据不同的标准进行排序。使用 sort 方法传递比较器是一个更好的选择。

public interface MyInterface  {
    int getTime();
    int getValue();
}

然后调用如下:

List<MyInterface> list= ...;
list.sort((mi1, mi2) -> Integer.compare(mi1.getTime(), mi2.getTime())); // sorts by time
list.sort((mi1, mi2) -> Integer.compare(mi1.getValue(), mi2.getValue())); // sorts by value

关于java - 接口(interface)和同类产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089212/

相关文章:

c# - 接口(interface)和抽象类中的 Xml 属性

c# - 通用列表的扩展方法

java - JavaScript 和 Thymeleaf 中的 Spring 消息

java - Tomcat 使用 war 名称作为 Spring 引导的基本 URL

java - 如何在eclipse jdt中使用代码查找成员变量是否在方法中使用?

java - 如何在android中使用smack api获取聊天中的离线/在线用户列表

java - 从文件路径设置壁纸

java - mvn tomcat7 :deploy goal failed Cannot invoke Tomcat manager: Connection refused

android - retrofit2 HttpLoggingInterceptor 响应体日志不正确

c# - 如何将与特定 C# 接口(interface)匹配的所有类型放入 IDictionary 中?