有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何修复Kotlin中的重载解析歧义(无lambda)?

我在这一行中有一个错误:

departureHourChoice!!.selectionModel.select(currentHourIndex)

供参考:

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

  • currentHourIndex是一个Int

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

  • .select()方法允许选择ChoiceBox中的项目,您可以通过引用该项目或其索引来确定可以选择哪个项目。在本例中,我希望通过索引(int)选择它

  • 这是错误的照片enter image description here

如何解决超负荷解决歧义


共 (2) 个答案

  1. # 1 楼答案

    似乎你受到了this bug的影响,作为一种解决办法,你可以:

    • currentHourIndex

      lateinit var departureHourChoice: ChoiceBox<Int>
      ...
      val currentHourIndex = 1
      departureHourChoice.selectionModel.select(currentHourIndex as Int?)
      
    • 或者将ChoiceBox的声明更改为使用java.lang.Integer而不是Kotlin的Int

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

    进一步阅读:

  2. # 2 楼答案

    在类似情况下,我的解决方案是在导入中定义,例如: 进口科特林。数学作为kotsqrt的sqrt

    然后用作: val a=kotsqrt(2.3)