Pull to refresh
18
0
Дмитрий Горбунов @dmdev

Developer

Send message

Реализация дружественных классов на Kotlin

Класс A объявлен в библиотечном модуле, свойства с модификатором internal доступны только внутри одного модуля:

class A {
    internal val foo: String = "bar"
}

interface AFriend {
    val A.foo get() = foo
}

Класс B объявлен в другом модуле, но получает доступ к свойству foo через расширение в интерфейсе AFriend.

class B : AFriend {
    fun printFoo() {
        println(A().foo)
    }
}

fun main() {
    B().printFoo() // print bar
}

Total votes 4: ↑4 and ↓0+4
Comments3

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity