Удалить геттеры и сеттеры из кода kotlin

Для этого кода

class Foo { var name: String? = null } 

Компилятор kotlin генерирует:

 private String name; public final String getName() { ... } public final void setName(String name) { ... } 

Даже если name свойства не имеет пользовательского getter или setter. Можно удалить избыточные методы get и set с @JvmField аннотации @JvmField . Итак, этот код

 class Foo { @JvmField var name: String? = null } 

генерирует только одно поле без дополнительных методов.

 public String name; 

Но есть ли способ заставить компилятор kotlin не генерировать геттеры и сеттеры для всех свойств всего проекта? Независимо от того, имеет ли он аннотацию или нет. Может быть, некоторые экспериментальные флаги компилятора?

Я хочу, потому что у меня есть тесты на андроид, написанные на котлине. Тест apk превышает предел количества меток 65k. Около 2 тыс. Методов генерируются getters / seters. Я не могу использовать proguard или multidex из-за некоторых ошибок в системе сборки Android. Поэтому удаление котлинских синтетических методов мне очень поможет.

Вы можете просто объявить свои свойства private , у них тогда не будут генерироваться геттеры и сеттеры.

 class Foo { private val foo: String = "foo" } 

Это приведет к созданию следующего класса:

 → javap -classpath build/classes/kotlin/test -p test.Foo Compiled from "Foo.kt" public final class test.Foo { private final java.lang.String foo; public test.Foo(); } 
Intereting Posts
Отправлять данные, полученные из Parse SDK в одном классе приложений, в Activity in android TornadoFX Обновление ItemViewModel, если объект Backing, не отображающий свойства JavaFX, изменен CountDownLatch не освобождает поток Kotlin: Как запустить методы обслуживания в контексте класса транзакций? Почему запуск тестов kotlin настолько медленный в AndroidStudio 3.0 Используйте Java Standard Lib для Kotlin при компиляции в Javascript Преобразование html-строки в pdf или изображение в Android Как настроить Spring Loaded с помощью Kotlin, Gradle и веб-фреймворка? Функция копирования класса данных Kotlin не работает Разница между тем и запуском в Котлине IntelliJ: ошибка Kotlin вызывает мерцание мыши и ошибки в коде Сделать короткое заявление if Каково использование сопутствующего объекта в котлине и замена в java Как передать значения из активности в другую деятельность в котлин Подождите, пока два наблюдаемых испускают истину