我使用 Java 17。这是我的代码:
public static class SortByPercentLike implements VideoSorterInterface {
// define Lambda Function
Comparator<Video> videoPercentLikeComparator = (a,b) -> {
Double firstVideoPercentLike = ((a.getLike() - a.getDislike())/ (double) a.getView());
Double secondVideoPercentLike = ((b.getLike() - b.getDislike())/ (double) b.getView());
return firstVideoPercentLike.compareTo(secondVideoPercentLike);
};
@Override
public void sort(List<Video> videos) {
videos.sort(Comparator.comparingDouble(videoPercentLikeComparator));
}
}
Comparator.comparingDouble(videoPercentLikeComparator) 部分给了我错误:
reason: no instance(s) of type variable(s) T exist so that Comparator<Video> conforms to ToDoubleFunction<? super T>
有什么问题
我不知道错误消息是什么意思。
除非我遗漏了什么,否则
videos.sort(Comparator.comparingDouble(videoPercentLikeComparator));
应该只是videos.sort(videoPercentLikeComparator);