私はLispのラムダ関数をよく理解しています。 JavaはLispと同じ柔軟性を持たないようです。 Javaでlambdaについて考える必要はありますか? 以下のコードを与えると、どうすればいいですか?パラメータとして任意のラムダ関数を渡して使用する方法
public class Draw {
GraphicsContext gc;
static void draw(double x, double y, double w, double h, boolean drawRect) {
if (drawRect) {
gc.fillRect(x, y, w, h);
} else {
gc.strokeRect(x, y, w, h);
}
}
// How do I do that?
static void drawWithLambda(double x, double y, double w, double h /**, lambda */) {
lambda(x, y, w, h);
}
public static void main(String[] args) {
draw(0, 0, 50, 50, false); // OK
drawWithLambda(0, 0, 50, 50, GraphicsContext::fillRect); // Ok?
}
}
この記事をお読みください:http://stackoverflow.com/questions/13604703/how-do-i-define-a-method-which-takes-a-lambda-as-a-parameter-in-java-8 – PiotrSliwa