首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仿制药和外卡

仿制药和外卡
EN

Stack Overflow用户
提问于 2016-12-17 07:54:23
回答 1查看 25关注 0票数 0

我在试着写

代码语言:javascript
复制
public static Comparable<? extends Comparable>  getMax (ArrayList <? extends Comparable> list)

我收到了一个例外

  • 可比是一种原始类型。对泛型类型可比的引用应该进行参数化。

我能做什么?我希望收到一个集合,并返回一个实现该接口的可变变量。

EN

回答 1

Stack Overflow用户

发布于 2016-12-17 08:14:57

如果要在列表中找到最大值,为什么要返回Comparable?返回T,其中T是列表存储的对象类型,要好得多。

此外,此处不应使用通配符。如果您像这样编写您的方法:

代码语言:javascript
复制
public static Comparable<? extends Comparable>  getMax (ArrayList <? extends Comparable> list)

然后客户端代码可以传递ArrayList<Integer>,您可以返回一个完全没有意义的String

为了避免这种情况,我建议您使用泛型T

代码语言:javascript
复制
public static <T extends Comparable<T>> T getMax (ArrayList<T> list) {
    return list.stream().max(Comparable::compareTo).orElse(null);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41196580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档