在Kotlin中重载等于BigDecimal

时间:2017-06-03 10:09:58

标签: overloading kotlin equals

在Kotlin文件中,我尝试重载 BigDecimal 类的 equals 方法。我有以下代码:

fun BigDecimal.equals(n: Any?): Boolean = n is Int && this.compareTo(BigDecimal(n)) == 0

问题是 n.equals(1)不会调用此函数,其中 n 的类型为BigDecimal。 有什么问题,我该如何解决?

2 个答案:

答案 0 :(得分:4)

来自the documentation

  

如果一个类有成员函数,并且定义了一个扩展函数,它具有相同的接收者类型,相同的名称并且适用于给定的参数,则该成员总是获胜。

答案 1 :(得分:1)

您不能覆盖或具有扩展功能的类的阴影函数。请参阅一个非常相似的问题here的答案。

相关问题