如何在Kotlin中指定duck typing(隐式接口)泛型?
例如
// Not valid Kotlin code. fun <T : Summable> myFunction ...
T : Summable
表示任何类型T
支持+
操作符,即定义了一个.plus
方法。
Kotlin中没有这样的功能,目前还没有计划将来发布。
你可能想看看GitHub的DucKtypes项目,它允许“静态ducktyping”。 例如:
interface Summable { fun plus() } object x { fun plus(){ println("plus") } } fun myFunction( s : Summable ){ s.plus() } myFunction( x )
这个项目还很新,但很快就会有一个gradle-plugin来自动生成代码。
- 处理程序每5秒运行一次任务Kotlin
- 为什么HashMap.get不能返回一个可为空的类型?
- 如何访问CalendarProvider与房间?
- 如何实例化一个新的泛型类型的实例
- 在Kotlin中处理可空或空列表的习惯方式
- 使用kotlin&greendao的Android Studio 3.0 Proguard将返回ClassLookupException
- 执行失败的任务’:calculator:compileKonanKotlinArithmeticParserIphone’
- Kotlin – RecyclerView.ViewHolder子类 – 无法访问额外的属性
- Kotlin数据类的房间数据库错误