Как сделать двухсторонний конвертер в Котлине? (Работа в Java)

Я получаю эту ошибку:

Ошибка: (32, 50) не может найти метод indexFromModel (android.databinding.ObservableList <br.com.martinlabs.usecase.model.GrupoDoPrincipal>, br.com.martinlabs.usecase.model.GrupoDoPrincipal) в классе br.com.martinlabs .usecase.viewtools.Converters

Но у меня есть такие методы на Converters : (Я тоже пытался с классом со своим компаньоном)

 object Converters { fun indexFromModel(list: ObservableList<GrupoDoPrincipal>, model: GrupoDoPrincipal): Int { return list.indexOfFirst { it?.id == model?.id } } @InverseMethod("indexFromModel") fun indexToModel(list: ObservableList<GrupoDoPrincipal>, index: Int): GrupoDoPrincipal { return index.let { list[it] } } } 

Применение:

 <Spinner android:selectedItemPosition="@={Converters.indexFromModel(vm.allGrupoDoPrincipal, vm.principal.grupoDoPrincipal)}" android:layout_width="match_parent" android:layout_height="wrap_content"/> 

Эти методы работают на Java:

 public static int indexFromModel(ObservableList<GrupoDoPrincipal> list, GrupoDoPrincipal model) { for (int i = 0; i < list.size(); i++) { if (list.get(i).getId() == model.getId()) { return i; } } return -1; } @InverseMethod("indexFromModel") public static GrupoDoPrincipal indexToModel(ObservableList<GrupoDoPrincipal> list, int index) { return list.get(index); } 

В методах object Котлин не является по-настоящему static . Чтобы сделать его статическим, вам необходимо добавить аннотацию @JvmStatic для этих методов:

 object Converters { @JvmStatic fun indexFromModel(list: ObservableList<GrupoDoPrincipal>, model: GrupoDoPrincipal): Int { return list.indexOfFirst { it?.id == model?.id } } @JvmStatic @InverseMethod("indexFromModel") fun indexToModel(list: ObservableList<GrupoDoPrincipal>, index: Int): GrupoDoPrincipal { return index.let { list[it] } } }