доступ к расширению kotlin в другом kt

Я думаю о добавлении глобального метода расширения в String только в одном файле, и везде, где я использую String, я всегда могу использовать это расширение.

Но я не смог найти способ сделать это … Я просто вставляю расширение всюду сейчас.

расширение здесь в A.kt:

class A{ ...... fun String.add1(): String { return this + "1" } ...... } 

и получить доступ, как это в B.kt:

 class B{ fun main(){ ...... var a = "" a.add1() ...... } } 

Я пробовал все, что могу добавить как static и final но ничего не получилось.

Solutions Collecting From Web of "доступ к расширению kotlin в другом kt"

Убедитесь, что ваша функция расширения является функцией верхнего уровня и не вложена в класс – в противном случае это будет расширение члена , доступное только внутри класса, в котором он находится:

 package pckg1 fun String.add1(): String { return this + "1" } 

Затем, если вы используете его в другом пакете, вам необходимо импортировать его так (это также должно быть предложено IDE):

 package pckg2 import pckg1.add1 fun x() { var a = "" a.add1() } 

Вы можете использовать функцию -function для использования расширения члена вне класса, где он был определен. Внутри лямбды, пройденной with , this будет относиться к экземпляру A вы проходите. Это позволит вам использовать функции расширения, определенные внутри A Как это:

 val a = A() val s = "Some string" val result = with(a) { s.add1() } println(result) // Prints "Some string1"