java - 可比接口实现
问题描述
Comparable
是一个包含方法的接口compareTo()
。
在使用泛型方法返回三个可比较对象中最大的一个的代码中,compareTo()
直接使用方法而不实现。这怎么可能?是因为我们在类中“扩展”该接口而不是“实现”它吗?
public class Max {
public static <T extends Comparable <T>> T maximum(T x, T y, T z) {
T max=x;
if (y.compareTo(max) > 0)
max=y;
if (z.compareTo(max) > 0)
max=z;
return max;
}
}
解决方案
由于您声明T extends Comparable<T>
使用该类型传递的任何对象都T
必须实现该Comparable
接口。
T
可以是您选择的任何对象,只要它具有YourType implement Comparable<YourType>
. 所以你传递给你的maximum
方法的任何东西都已经实现了compareTo
。
编辑:哦,语法确实有点与泛型混淆。如果您添加extends SomeInterface
到您的泛型类型,它需要一个implements
而不是一个extends
.
推荐阅读
- google-app-engine - 无法为应用引擎设置特定的防火墙规则
- jetty - 嵌入式码头:在上下文中显示所有会话
- scala - 如何在 Scala 中结合 2 个期货
- sql-server - 如何在 odbc 调用日期函数?
- java - 如何使用 RestTemplate 反序列化嵌套列表?
- php - 为什么在初始页面加载时将此 curl 函数返回一个未定义的索引?
- django - 在点击的变量上过滤的 Django 模板
- ansible - 在 Ansible yaml 文件中评估多行布尔语句时的错误结果
- tfs - TFS 2018 - 将子集内容移动到另一个服务器/域
- c# - 创建 BindableProprties 时 GetValue 和 SetValue 与 INotifyPropertyChanged.PropertyChanged?