有没有办法向多个类添加方法,或者减少实现相同代码所需的重复代码量。
目前我使用以下内容(在此示例中添加一个c方法,用于计算iterable中项目的重复次数):
/** Counts each of the distinct items. */
fun <T> Iterable<T>.c() = groupingBy { it }.eachCount()
/** Counts each of the distinct items. */
fun <T> Sequence<T>.c() = groupingBy { it }.eachCount()
/** Counts each of the distinct items. */
fun <T> Array<T>.c() = groupingBy { it }.eachCount()
我想知道是否有办法减少代码量,目前我重复一遍,我想在3种类型中的任何一种上使用所有方法。
我能找到的唯一方法是使用常用方法定义一个接口,然后使用一个类用实现公共接口来包装每个类型,但这看起来像很多可能的代码一种更简单的方式。
答案 0 :(得分:2)