我在试着写
public static Comparable<? extends Comparable> getMax (ArrayList <? extends Comparable> list)我收到了一个例外
我能做什么?我希望收到一个集合,并返回一个实现该接口的可变变量。
发布于 2016-12-17 08:14:57
如果要在列表中找到最大值,为什么要返回Comparable?返回T,其中T是列表存储的对象类型,要好得多。
此外,此处不应使用通配符。如果您像这样编写您的方法:
public static Comparable<? extends Comparable> getMax (ArrayList <? extends Comparable> list)然后客户端代码可以传递ArrayList<Integer>,您可以返回一个完全没有意义的String。
为了避免这种情况,我建议您使用泛型T
public static <T extends Comparable<T>> T getMax (ArrayList<T> list) {
return list.stream().max(Comparable::compareTo).orElse(null);
}https://stackoverflow.com/questions/41196580
复制相似问题