https://medium.com/techtrends-digest/a-complete-end-to-end-guide-to-apache-kafka-part-1-1010aab6d748
.Net, Rails, and other stuff
Sai Jyothi Prasad Ponduru's learning blog
Friday, January 23, 2026
Saturday, November 29, 2025
Kotlin Generics - in, out - covariant, contravariant, invariant
https://stackoverflow.com/a/65648074
out produces T and preserves subtyping
class becomes read only
class Case<out T> {
private val contents = mutableListOf<T>()
fun produce(): T = contents.last() // Producer: OK
fun consume(item: T) = contents.add(item) // Consumer: Error
}in consumes T and reverses subtyping
class becomes write only
class Case<in T> {
private val contents = mutableListOf<T>()
fun produce(): T = contents.last() // Producer: Error
fun consume(item: T) = contents.add(item) // Consumer: OK
}Invariant produces and consumes T, disallows subtyping
class Case<T> {
private val contents = mutableListOf<T>()
fun produce(): T = contents.last() // Producer: OK
fun consume(item: T) = contents.add(item) // Consumer: OK
}
Subscribe to:
Comments (Atom)