Je rencontre une erreur d’ambiguïté de résolution de surcharge dans cette ligne:
departureHourChoice!!.selectionModel.select(currentHourIndex)
Pour référence:
departureHourChoice
est un ChoiceBox<Int>
, qui provient de Java.scene.control
currentHourIndex
est une Int
L'ambiguïté de la résolution de surcharge se produit dans la méthode .select()
; Il est surchargé et peut accepter deux types de paramètres: (T obj)
ou (int index)
.
La méthode .select()
permet de sélectionner un élément dans une ChoiceBox
et vous pouvez déterminer celui qui peut être sélectionné en référençant cet élément ou son index. Dans ce cas, je souhaite qu'il soit sélectionné par Index (int
).
Comment pourrait-on résoudre l'ambiguïté de la résolution de surcharge?
Il semble que vous soyez touché par ce bogue pour contourner ce problème, vous pouvez:
encadrer la currentHourIndex
:
lateinit var departureHourChoice: ChoiceBox<Int>
...
val currentHourIndex = 1
departureHourChoice.selectionModel.select(currentHourIndex as Int?)
ou changez la déclaration de ChoiceBox
pour utiliser Java.lang.Integer
au lieu de Int
de Kotlin:
lateinit var departureHourChoice: ChoiceBox<Java.lang.Integer>
...
val currentHourIndex = 1
departureHourChoice.selectionModel.select(currentHourIndex)
Lectures complémentaires:
Essayez d'incarner à Int
:
departureHourChoice!!.selectionModel.select(currentHourIndex as Int)
La solution pour moi dans une situation similaire consiste à définir dans votre importation, par exemple: Import kotlin.math.sqrt as kotsqrt
puis utilisez comme: val a = kotsqrt (2.3)