2016-08-05 10 views
9

Mam błąd przeciążenia Rozdzielczość dwuznaczność w tym wierszu:Jak naprawić niejednoznaczność w Przeciążeniu w Kotlin (bez lambda)?

departureHourChoice!!.selectionModel.select(currentHourIndex)

dla odniesienia:

  • departureHourChoice jest ChoiceBox<Int>, która jest od java.scene.control

  • currentHourIndex jest Int

  • Niejednoznaczność w przypadku przeciążenia występuje w metodzie .select(); Jest przeciążony i może akceptować dwa rodzaje parametrów: (T obj) lub (int index).

  • Metoda .select() pozwala wybrać element z ChoiceBox i można określić, który element można wybrać, odwołując się do tego elementu lub do jego indeksu. W tym przypadku chcę, aby został wybrany przez Index (int).

  • Oto zdjęcie błędu enter image description here

Jak należałoby rozwiązać przeciążenie Resolution dwuznaczność?

Odpowiedz

6

Wydaje się, że są dotknięte this bug jako obejście można:

  • Box currentHourIndex:

    lateinit var departureHourChoice: ChoiceBox<Int> 
    ... 
    val currentHourIndex = 1 
    departureHourChoice.selectionModel.select(currentHourIndex as Int?) 
    
  • lub zmiana deklaracji ChoiceBox używać java.lang.Integer zamiast Kotlin na Int:

    lateinit var departureHourChoice: ChoiceBox<java.lang.Integer> 
    ... 
    val currentHourIndex = 1 
    departureHourChoice.selectionModel.select(currentHourIndex) 
    

Dalsze czytanie:

0

Spróbuj przesłać do Int:

departureHourChoice!!.selectionModel.select(currentHourIndex as Int) 
+1

to nie kompiluje albo od 'currentHourIndex' jest już 'Int' – miensol

Powiązane problemy