data class MyConfig(val myList: List<Config>)
interface Config {
fun doStuff()
}
class SomeType(val propertyA: String, val propertyA1: Int): Config {
override fun doStuff() {
println("SomeType $propertyA")
}
}
class OtherType(val propertyB: String, val propertyB1: String): Config {
override fun doStuff() {
println("OtherType $propertyB and $propertyB1")
}
}
So this way I could do something like
Copy code
class MyService(val myConfig: MyConfig) {
fun serviceFunction() {
myConfig.myList.forEach(Config::doStuff)
}
}