【发布时间】:2018-06-04 13:52:52
【问题描述】:
在 Kotlin 中,是否有任何简洁的方法可以为一个接口生成一个 Comparable#compareTo() 函数,该函数只按照声明顺序为接口的每个属性调用 this.property1.compareTo(that.property1)?显然,接口的每个属性都实现了Comparable。
对于接口I,看起来我可以创建一个顶级val,如:
private val COMPARATOR = compareBy<I>(
{it.property1},
{it.property2},
{it.property3},
...
)
还有来自I#compareTo(I) 的return COMPARATOR.compare(this, other),但是,有没有更简单的方法可以做到这一点?
【问题讨论】:
-
我强烈建议完全按照您上面所说的去做,以增加对魔法的明确性。
标签: kotlin compare comparator compareto