有时,创建已由现有第三方代码(即来自库)实现的接口很有用.例如,我们可以想象选择String类的方法的子集并声明GenericString.然后我们可以定义实现这些方法的其他GenericStrings,但不能定义
如果你想投票,有一个KEEP.
你可以做什么,虽然它不是真的相同,但它有一个接口,并有一个扩展方法返回你想要使用的每个类型的实现:
fun String.toGenericString() = object : GenericString { private val str = this@toGenericString override val length get() = str.length //...etc }
然后使用它.