Аннотировать геттер от собственности

В котлине мы можем определить

var text: String 

который будет иметь геттер и сеттер. Легко удалить сеттер, изменив его на val , но что, если у нас есть свойство, которое должно иметь только сеттер и без геттера? Есть ли способ создать аннотацию, которую мы можем применить к text который будет обесценивать геттер, чтобы другие не могли его использовать?

Конечной целью является использование синтаксиса свойств, а не вызов setText

Текущее обходное решение, которое я знаю, достигает аналогичного результата:

 var text: String @Deprecated(level = DeprecationLevel.ERROR, message = "Non readable property") get() = nonReadable() set() ... 

Я хотел бы знать, можно ли определить нечто похожее на

 @SetterOnly var text: String set() ... 

Я могу сказать вам, что сейчас нет возможности завершить эту функцию в Котлине. так как ошибка KT-3110 не отмечена как Fixed .

Я тестировал следующий код java в kotlin ниже, он может получить доступ к setter через setText :

 public class Property { public void setText(String text) {/**/} private String getText() { return "foo"; } } 

что означает, что вы не можете удалить геттер / сделать видимость геттера ниже. поэтому невозможно избавиться от getter как плагин kotlin-allopen . поэтому одно возможное решение, которое вы можете сделать, это написать свой собственный плагин kapt для выдачи ошибки времени компиляции, например:

 @SetOnly var text:String = "foo";