2016-03-25 63 views
10

假设我有一些“MyClass”的扩展方法。 我的问题是,组织/存储这些方法的最佳做法是什么? 他们是否应该简单地放入“MyClassExtensions”Kotlin文件?如何组织Kotlin扩展方法

我试图将这些方法封装在一个类中,但导入类后我似乎无法弄清楚如何使用/访问扩展方法。

编辑: 澄清,我没有要求帮助什么来调用包含扩展方法的文件。我正在询问有关存储/组织此类方法的最佳实践/方法。 IE浏览器。它们应该简单地放入kotlin文件中,还是应该封装在一个类中。我来自Java背景,所以我习惯在类中存储东西。

+2

https://kotlinlang.org/docs/reference/extensions.html#scope-of-extensions –

+0

谢谢,我一定是意外地错过了这部分文档。 – pjozsef

+0

“最佳实践/方法来存储/组织这样的方法”,这使得这个问题非常舆论基础 – voddan

回答

3

就我而言,您应该将它们放到实用程序文件中,就像您在之前的Java代码库中所做的那样。

但是提到,你不再需要把它们放到一个类中。顶级功能是最佳选择。

您可以参考kotlin标准库或一些开源项目,如anko,那些将是很好的例子。

在我的情况,我把一类扩展成具有另一个包的原始文件同名的文件,并使用

@JvmMultifileClass 

减少生成的类文件的数量。

0

正如在我的问题下的评论中所提到的,这部分Kotlin文档解释得非常好。 https://kotlinlang.org/docs/reference/extensions.html#scope-of-extensions

+1

是的,但你称之为包含扩展方法的KT文件? – mfulton26

+0

你称为包含函数的C文件是什么?显然这取决于该文件中包含的功能。同样适用于Kotlin。 (绝对没有规则表示为一个类定义的所有扩展函数必须或应该包含在一个文件中。) – yole

+0

我编辑了我的问题以阐明我所要求的内容。 – pjozsef