kotlin - 如何通过传递类型来创建类的实例
问题描述
我希望能够说创建此类的一个实例并给出一个类型,然后代码可以实例化该类的一个新实例。
fun maker(type: Class<Animal>): Animal {
if(type == Class<Dog>) {
return Dog()
}
else if (type == Class<Cat>) {}
...
}
有什么好方法可以做到这一点?
解决方案
如果它们都有零参数构造函数,你可以这样做:
fun maker(type: Class<Animal>): Animal {
return type.newInstance()
}
您可以让它返回传入的类型以获得更多功能:
fun <T: Animal> maker(type: Class<T>): T {
return type.newInstance()
}
推荐阅读
- javascript - 从 Javascript 文件生成 Typescript 定义
- angular - 动态添加数据到 MatTableDataSource Material Angular
- javascript - 从多个工作表中复制行并删除
- javascript - 用户刷新页面时如何使Javascript文件不重置
- c# - 如何在 XPath .net 应用程序中按索引选择元素
- python - 将存储为 Azure Blob 的 CSV 直接加载到 Pandas 数据帧中,而无需先保存到磁盘
- angular - 如何使用带条件的 mat 表扩展行
- c# - 标签未显示随机模拟的输出
- spring-boot - 如何使用默认类从 JSON 登录尝试中读取用户凭据?
- android - Android Bluedroid BLE:某些手机没有收到来自 GATT 服务器的通知?