Комментарии 5
Я думаю, что лучше в этом месте:
использовать лямбду или придумать, что сделать, чтобы можно было использовать лямбду
вот тут: www.slideshare.net/dashorst/de-vdev-meetup-1
на 84 слайде они как раз что-то подобное сделали
add(new Label("name", new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
return model.getObject().getName();
}
}));
использовать лямбду или придумать, что сделать, чтобы можно было использовать лямбду
вот тут: www.slideshare.net/dashorst/de-vdev-meetup-1
на 84 слайде они как раз что-то подобное сделали
0
Собственно, смысл поста и заключается в демонстрации того, как можно задействовать лямбду.
Непосредственно AbstractReadOnlyModel с лямбда-выражением не скрестить, потому что лямбда требует функционального интерфейса, а у нас тут абстрактный класс.
Презентация весьма интересна, спасибо за ссылку, однако в ней речь идёт о пока что гипотетическом Wicket 8 («Anything written here is just speculation from my side. This is not set in stone, this is not how e are going to implement things, w or quite reasonably at all.»). Когда выйдет или хотя бы появится в репозитории кода, будет интересно пощупать. Ну а текущий пост — о том, что уже можно применить в продакшне.
Непосредственно AbstractReadOnlyModel с лямбда-выражением не скрестить, потому что лямбда требует функционального интерфейса, а у нас тут абстрактный класс.
Презентация весьма интересна, спасибо за ссылку, однако в ней речь идёт о пока что гипотетическом Wicket 8 («Anything written here is just speculation from my side. This is not set in stone, this is not how e are going to implement things, w or quite reasonably at all.»). Когда выйдет или хотя бы появится в репозитории кода, будет интересно пощупать. Ну а текущий пост — о том, что уже можно применить в продакшне.
0
Мы сделали так:
1. Заводим где-то вспомогательный метод, перегоняющий лямбду в модель:
2. Используем:
1. Заводим где-то вспомогательный метод, перегоняющий лямбду в модель:
public static <T> AbstractReadOnlyModel<T> arom(Supplier<T> s) {
return new AbstractReadOnlyModel<T>() {
@Override
public T getObject() {
return s.get();
}
};
}
2. Используем:
add(new Label("name", arom(User::getName)));
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Wicket+лямбды: типобезопасная и лаконичная реализация IModel