我在android中创建了一个自定义视图。其中一种方法有这样的签名:
fun show(CategoryFilterModel model) {/*...*/}
它工作正常。现在我想创建一个重载函数,如果我通过将它添加到自定义视图类中来实现它:
fun show(ShopFilterModel model) {/*...*/}
请注意,类型不同,因此这是方法重载。
我想到了一个想法,我可以在kotlin中使用扩展来为类添加另一种方法。
所以想要这样的东西:
fun MyCustomView.show(ShopFilterModel: model){
}
这是建议还是我应该只添加带扩展的实用程序方法?是否有任何管理费用?
答案 0 :(得分:4)
这不仅适用于实用程序,因为您可以阅读这篇很棒的answer,其中列出了几乎所有用例。
Imho,如果您想要使用方法扩展该类,那么将该方法直接添加到该方法没有问题,而不是使用扩展方法。然而,从技术上讲,你可以考虑这样做。请注意 calling such an extension function from Java不是非常惯用,因为它会被编译为static
函数。如果它将从Java调用,我宁愿在可能的情况下使用普通方法。