Java依赖项定义了一些没有equals方法的值类。他们确实应该实现它,但是没有实现。
fun OrderBookEntry.equals(other: Any?): Boolean =
EqualsBuilder.reflectionEquals(this, other)
我想通过扩展实现等式
public open fun equals(other: Any?): Boolean
但是我得到了警告
扩展名被成员隐藏。 {{1}}
,扩展方法无效。
我可以超越平等行为吗?
答案 0 :(得分:2)
您不能使用扩展功能覆盖方法。
fun OrderBookEntry.foo(other: Any?): Boolean
在Java中,等效于拥有诸如
的静态辅助方法。public static boolean foo(OrderBookEntry fakeThis, Object other)
扩展函数是静态解析的,不能隐藏成员方法,并且必须显式导入(从另一个程序包调用时),以便可用。