Over a million developers have joined DZone.

Kotlin Properties and the Vaadin 8 Beanbinder [Code Snippet]

DZone's Guide to

Kotlin Properties and the Vaadin 8 Beanbinder [Code Snippet]

The Vaadin 8 beta is taking some lessons from Java 8's implementation of lambda expressions. But whereas Java doesn't recognize properties, Kotlin can help bind beans.

· Java Zone ·
Free Resource

Java-based (JDBC) data connectivity to SaaS, NoSQL, and Big Data. Download Now.

Vaadin 8 (currently in beta) comes with a whole new DataBinding API that makes heavy use of Java 8 lambda features. 

Unfortunately, Java has no concept of a Property, so one of the new ways to bind a Bean Property is writing something like ( taken from the documentation):

binder.bind(nameField, Person::getName, Person::setName);

Since Kotlin has a concept for a property, you may want to write something like:


That's possible with an extension method for the Vaadin Binder that could probably look like this:

fun <BEAN, T> Binder.BindingBuilder<BEAN, T>.bind(prop: KMutableProperty<T>) {
            ValueProvider { bean: BEAN -> prop.getter.call(bean) },
            Setter { bean: BEAN, v: T -> prop.setter.call(bean, v) })

Have fun with Kotlin and Vaadin!

Connect any Java based application to your SaaS data.  Over 100+ Java-based data source connectors.

java ,kotlin ,vaadin ,beanbinder

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}