Библиотека JetBrains / rd имеет концепцию Lifetime
, которую можно рассматривать как инвертированную версию AutoCloseable
или IDisposeable
(см. здесь и здесь для получения более подробной информации).
Простейшим примером варианта использования будет что-то вроде этого:
import com.jetbrains.rider.util.lifetime.Lifetime
import com.jetbrains.rider.util.lifetime.onTermination
import java.io.FileInputStream
import java.io.InputStream
class LifetimeExample(lifetime: Lifetime, private val input: InputStream) {
init {
lifetime.onTermination {
input.close()
println("File closed.")
}
}
fun process() {
println("${input.bufferedReader().readText().length} char(s) read.")
}
companion object {
@JvmStatic
fun main(vararg args: String) {
Lifetime.using {
LifetimeExample(it, FileInputStream("/etc/passwd")).process()
}
}
}
}
Есть ли аналогичная концепция в любом RxJava или RxKotlin ?