【发布时间】:2018-09-27 10:41:07
【问题描述】:
为了对集合进行排序,可以使用以下方法:
import java.util.ArrayList;
import java.util.Collections;
public class LambdaSort {
public static void main(String args[]) {
ArrayList arr = new ArrayList();
Collections.sort(arr);
}
}
在这种情况下,排序是多余的,因为集合是空的。
为了使用通用排序函数而不是Collections.sort,我创建了一个以排序函数为参数的新方法:
private void genericSort(() -> java.util.List)) {
}
但这不会进行类型检查并导致错误:
Multiple markers at this line
- Syntax error, insert "[ ]" to complete Dimension
- Syntax error on token(s), misplaced construct(s)
- Syntax error on token "void", @ expected after this token
- Syntax error, insert "Identifier (" to complete
MethodHeaderName
- Method breakpoint:LambdaSort [entry] - genericSort()
我打算将函数用作:
LambdaSort ls new LambdaSort()
ls.genericSort(Collections.sort(ls))
我应该如何定义我的genericSort 以接受通用排序函数?
【问题讨论】:
-
看起来你正在尝试发明新的 Java 语法,受到 Haskell 的启发。提示:对 Java lambda 和方法引用做一些研究,然后查看 Consumer 接口。你的代码有太多问题了。
-
Collections.sort(list)返回无效。不能作为参数传递