2016-03-25 64 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