Как упомянул @Madhu Bhat в комментарии выше, ваша переменная 'x' все еще может иметь значение null. Вы можете использовать свою функцию просто так:
x.test().length
В противном случае вы можете проверить на нулевое значение, следуя встроенной функции, а затем выполнять любые функции непосредственно над переменной. (Обратите внимание на использование 'contract' и аннотаций '@ExperimentalContracts')
@ExperimentalContracts
fun <T> T?.notNull(): Boolean {
contract {
returns(true) implies (this@notNull != null)
}
return this != null
}
Теперь вы можете использовать эту функцию следующим образом
if(x.notNull()){
x.length
}
Но она не кажется настолько полезной, если вы используете эта функция просто для проверки обнуляемости.
Проверьте здесь, чтобы узнать больше о Kotlin контрактах