Java8がついに来たのでひと通り新機能調べてきました。
MethodReferencesを見た感じ、Eventの実装とか結構楽になりそうだったので試しに書いてみました。

import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

public class Main {

    public static List<Consumer<String>> functionList = new LinkedList<>();
    public static void main(String[] args) {
        Main main = new Main();
        functionList.add(main::printA);
        functionList.add(main::printB);
        functionList.add(System.out::println);
        functionList.add(text -> System.out.println("(" + text + ")"));
        functionList.stream().forEach(f -> f.accept("hoge"));
    }

    public void printA(String text) {
        System.out.println("[" + text + "]");
    }

    public void printB(String text) {
        System.out.println("{" + text + "}");
    }
}

今まで通りにインスタンスの参照受け取って、インターフェイスで定義したメソッドを呼び出すのか、メソッドの参照を直接受け取って呼び出すのがいいのか。どっちなんでしょうね?