Я знаю, что могу получить все подклассы sealed class
в Kotlin, но я ищу способ получить все реализации интерфейса.
Так что вместо ...
sealed class HotDrinkFactory {
abstract fun prepare(amount: Int): HotDrink
}
class TeaFactory : HotDrinkFactory() {
override fun prepare(amount: Int): HotDrink {
...
}
}
class CoffeeFactory : HotDrinkFactory() {
override fun prepare(amount: Int): HotDrink {
...
}
}
fun main(args: Array<String>) {
val hotDrinkFactories = HotDrinkFactory::class.sealedSubclasses
hotDrinkFactories.forEach { println(it::class.qualifiedName) }
}
... Я хотел бы получить
interface HotDrinkFactory {
fun prepare(amount: Int): HotDrink
}
class TeaFactory : HotDrinkFactory {
override fun prepare(amount: Int): HotDrink {
...
}
}
class CoffeeFactory : HotDrinkFactory {
override fun prepare(amount: Int): HotDrink {
...
}
}
fun main(args: Array<String>) {
val hotDrinkFactories = HotDrinkFactory::class.<<< Something here? >>>
hotDrinkFactories.forEach { println(it::class.qualifiedName) }
}