The Kotlin framework is quite rich; it provides support for a delegated property for non-null values. All you have to do is use Delegates.nonNull, like in this simple example:
class NonNullProp {
var value: String by Delegates.notNull<String>()
}
val nonNull = NonNullProp()
nonNull.value = "Kotlin rocks"
println("Non null value is: ${nonNull.value}")
//this will not compile
nonNull.value = null
Trying to access the property value before it has been initialized would lead to an IllegalStateException being raised. Furthermore, if you try to set a null to it, you will get a compilation error.