kotlin - 如何在 Kotlin 中返回 T?
问题描述
我想在函数中返回 T 。
我有一个接口类IRepository.kt
interface IRepository
{
fun <T>Save(model:T)
fun <T>Delete(model:T)
fun <T>Get(id:Long):T
}
我想在Repolmpl.kt
class Repolmpl:IRepository
{
override fun <T>Delete(model:T)
{
println("$model : Save}")
}
override fun <T>Get(id:Long):T
{
return T //ERROR here I want to return T...
}
override fun <T> Save(model: T)
{
println("$model : Delete")
}
}
我在网上看到了一些类似的问题,但我找不到正确的解决方案。
解决方案
泛型类型T
基本上只是一个模板。您不能返回它,但必须先用实际类型替换它。使接口本身通用,而不是其方法。实施时,指定T
:
interface IRepository<T> {
fun save(model: T)
fun delete(model: T)
fun get(id: Long): T
}
class Repolmpl: IRepository<String>
{
override fun delete(model: String) {}
override fun get(id: Long): String {}
override fun save(model: String) {}
}
推荐阅读
- kubernetes-helm - 我可以从 helm hooks 运行的脚本中检索出来并将其用作另一个图表的输入吗?
- asp.net - ASP.NET MVC OpenId 与 Ajax 混合
- questdb - 如何使用 Python 将流入线路协议记录写入 QuestDB?
- html - 如何调整切换按钮的大小?
- hyperledger-fabric - 网关编程模型是新常态吗?
- python - 我想设置密码来关闭discord.py上的机器人,但我不知道如何编写代码。有人帮我写代码
- lua - 如何制作没有其他依赖项的 LÖVE2d 可执行文件或安装程序文件?
- r - 在 R 中的函数中传递参数
- mysql - MySQL 查询返回在一个订单中购买超过 2 件商品的所有客户的姓名
- shopware - 从非 Shopware 插件类扩展店面 JavaScript 类