Пользовательский геттер для свойств параметров типа

У меня есть файл Java, немного похожий на это:

public class Thing { private String property; public Thing(String property) { this.property = property; } public String getProperty() { if (property == null) { return "blah blah blah"; } else { return property; } } } 

Очевидно, что мой фактический класс больше, но приведенный выше пример.

Я хочу написать это в Котлине, поэтому я начал с этого:

 class Thing(val property: String?) 

Затем я попытался реализовать пользовательский геттер, используя официальную документацию и другой вопрос Kotlin в качестве ссылки, например:

 class Thing(property: String?) { val property: String? = property get() = property ?: "blah blah blah" } 

Однако моя IDE (Android Studio) выделяет второе property на третьей строке приведенного выше кода красным цветом и дает мне сообщение:

Инициализатор здесь не разрешен, потому что свойство не имеет поля поддержки

Почему я получаю эту ошибку и как я могу написать этот пользовательский геттер, как описано выше?

Solutions Collecting From Web of "Пользовательский геттер для свойств параметров типа"

Вам нужно использовать «поле» вместо «property» в теле вашего get() , чтобы объявить поле поддержки :

 class Thing(property: String?) { val property: String? = property get() = field ?: "blah blah blah" } 

Однако в этом конкретном примере вам может быть лучше с объявлением свойства, отличным от null:

 class Thing(property: String?) { val property: String = property ?: "blah blah blah" }