如何解决Kotlin中的过载分辨率歧义(无lambda)?

Ber*_*rry 12 java javafx kotlin

我在这一行中遇到Overload Resolution Ambiguity错误:

departureHourChoice!!.selectionModel.select(currentHourIndex)

以供参考:

  • departureHourChoice是一个ChoiceBox<Int>,来自java.scene.control

  • currentHourIndex 是一个 Int

  • 过载分辨率歧义发生在.select()方法中; 它是重载的,可以接受两种参数:(T obj)(int index).

  • .select()方法允许ChoiceBox选择a中的项目,并且您可以通过引用该项目或其索引来确定可以选择哪个项目.在这种情况下,我希望它由Index(int)选择.

  • 这是错误的照片在此输入图像描述

如何解决过载分辨率模糊?

mie*_*sol 12

您可能会遇到以下问题:

  • 盒子currentHourIndex:

    lateinit var departureHourChoice: ChoiceBox<Int>
    ...
    val currentHourIndex = 1
    departureHourChoice.selectionModel.select(currentHourIndex as Int?)
    
    Run Code Online (Sandbox Code Playgroud)
  • 或更改ChoiceBox使用声明java.lang.Integer而不是Kotlin Int:

    lateinit var departureHourChoice: ChoiceBox<java.lang.Integer>
    ...
    val currentHourIndex = 1
    departureHourChoice.selectionModel.select(currentHourIndex)
    
    Run Code Online (Sandbox Code Playgroud)

进一步阅读: