Удалить геттеры и сеттеры из кода 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(); }