ラムダ式を引数に取るメソッドを書いてみる。

Consumer<T> consumer::acceptcallbackみたいな感じで使える。

import java.util.function.Consumer;

public class Main {
  public static void main(String[] args) {
    String[] messages = new String[] {
      "hoge", "fuga", "foo", "bar"
    };

    each(messages, message -> {
      System.out.println(message);
    });
  }

  private void each(String[] messages, Consumer<String> consumer) {
    for(String message: messages) {
      consumer.accept(message);
    }
  }
}

出力

John
Sarah
Kevin

JavaScriptで書くとこんな感じか

(function() {
  const messages = [
    "hoge", "fuga", "foo", "bar"
  ];

  each(messages, message => {
    console.log(message);
  });

  function each(messages, callback) {
    for(message of messages) {
      callback(message);
    }
  }
})();