如何在Kotlin中指定duck typing(隐式接口)generics?
例如
// Not valid Kotlin code. fun myFunction ...
T : Summable
表示任何typesT
支持+
操作符,即定义了一个.plus
方法。
Kotlin中没有这样的function,目前还没有计划将来发布。
你可能想看看GitHub的DucKtypes项目,它允许“静态ducktyping”。 例如:
interface Summable { fun plus() } object x { fun plus(){ println("plus") } } fun myFunction( s : Summable ){ s.plus() } myFunction( x )
这个项目还很新,但很快就会有一个gradle-plugin来自动生成代码。