レア文法を使ってみた

使ってみた。実際に動きます。

public class Head<T> {
    T value;
    Head(T v) {
        value = v;
    }
    void show() {
        System.out.println(value);
    }
    public class Link extends Head<T> {
        Link(T v) {
            super(v);
        }
        @Override void show() {
            Head.this.show();
            super.show();
        }
    }
    public static void main(String[] args) {
        new Head<String>("a")
        .new Link("b")
        .new Link("c")
        .new Link("d")
        .new Link("e")
        .show();
    }
}

内部クラスが親クラスを囲むことによって、クラスインスタンス生成の限定式に自分自身と同じ形式のものを利用できます。

フィルタの連結とかに使えないですかね…使えないですよね…。