Wicket8 になって登場した LambdaModel
IModel<T> LambdaModel.of(SerializableSupplier<T> getter, SerializableConsumer<T> setter
Pageクラスに変数とsetter/getter を用意すればメソッド参照で、
queue(new TextField<String>("item", LambdaModel.of(this::getItem, this::setItem) ));
と書けるわけだが、setter/getter を書かなければ、、、
queue(new TextField<String>("item", LambdaModel.of(()->item, t->item=t) ));
と書くことになり、これで良いかと思うと、、コンパイルが通らない!
「メソッド of(SerializableSupplier
と怒られてしまう。
setter のところを、t->item=t ではなく、t->{item=t;}
以下のようにすればコンパイルも通り、きちんと動く
queue(new TextField<String>("item", LambdaModel.of(()->item, t->{item=t;} ) ));