我想要一个类的列表,这些类稍后可以在程序中实例化。类似于:
val someClasses = listOf(ClassA, ClassB, ...)
for (myClass in someClasses) {
val myObject = myClass()
myObject.doSomething()
}
当然它不起作用。有可能在科特林做这样的事情吗?
您可以有一个创建所述类实例的函数列表。
最简单的方法是使用语法::ClassName
引用这些类的构造函数。因此,将此应用于您的示例,假设这些类没有arg构造函数:
val someClassConstructors = listOf(::ClassA, ::ClassB, ...)
for (myConstructor in someClassConstructors) {
val myObject = myConstructor()
myObject.doSomething()
}
以上假设您的所有类都实现了一个具有doSomething()
方法的公共接口。