Kotlin: как выдать свойство своего члена данных за своё свойство?

Есть два класса. У первого класса есть открытое свойство. У второго класса есть закрытый член данных являющийся экземпляром первого класса и открытое свойство:

class A {
    var s = "test"
}

class B {
    private var a = A()
    public val prop = a.s
}

Хочется, чтобы свойство prop было ссылкой на свойство a.s. То есть если мы читаем prop, то получаем значение хранящееся в a.s. А если мы пишем в prop, то новое значение сохраняется в a.s. Если содержимое a.s меняется где-то в другом месте, то prop соответственно тоже должно обновиться. Можно ли это сделать простым способом? Я попробовал сделать, как в этом коде public val prop = a.s, но это не работает - связи между свойствами не возникает.

Есть ли в Kotlin простой способо сделать такую ссылку на свойство другого класса?


Ответы (2 шт):

Автор решения: Eugene Krivenja

Геттер вам поможет.

class B {
    private var a = A()
    public val prop get() = a.s
}

Документация:
https://kotlinlang.org/docs/reference/properties.html#getters-and-setters

→ Ссылка
Автор решения: Михайлуц Юрий

Похоже, что вы имеете ввиду делегирование:

class A {
    var s = "test"
}

class B {
    private var a = A()
    public var prop by a::s
}
→ Ссылка