【发布时间】:2013-08-04 21:31:24
【问题描述】:
这是对另一个问题 (Reuse code for looping through multidimensional-array) 的跟进,我的具体问题已通过使用命令模式解决。我的问题是,我有多种方法对二维数组的每个元素执行操作 - 因此有很多重复的代码。而不是有很多这样的方法......
void method() {
for (int i = 0; i < foo.length; i++) {
for (int j = 0; j < foo[i].length; j++) {
// perform specific actions on foo[i][j];
}
}
}
...我是这样解决的:
interface Command {
void execute(int i, int j);
}
void forEach(Command c) {
for (int i = 0; i < foo.length; i++) {
for (int j = 0; j < foo[i].length; j++) {
c.execute(i, j);
}
}
}
void method() {
forEach(new Command() {
public void execute(int i, int j) {
// perform specific actions on foo[i][j];
}
});
}
现在,如果我们在 Java 中有 lambda 表达式,如何缩短它?一般情况下会是什么样子? (对不起我的英语不好)
【问题讨论】:
标签: java lambda functional-programming java-8