У меня есть эта функция
fun <T> safe(t: T?): T {
return Optional.ofNullable(t).orElseThrow { IllegalStateException("safe value should not be null") }
}
Я использую ее, чтобы сказать, что знаю, что T теперь не является нулевым, поэтому верните мне ее ненулевую форму.
Так что я используйте это так, я заявляю
class SomeType(val someOtherType: SomeOtherType?)
Но некоторые someOtherType
в другом месте объявлены так:
class SomeThirdType(val someOtherType: SomeOtherType)
Так что в SomeType
у меня есть эта функция:
class SomeType(val someOtherType: SomeOtherType?) {
fun doSomeDamage(): SomeThirdType {
//some work
return SomeThirdType(safe(someOtherType))
}
}
Меня не устраивает функция safe
, есть ли лучший способ? Я чувствую, что упускаю что-то фундаментальное здесь