我使用一些用Java编写的第三方库,该库具有使用以下方法的类:

    // D is generic type
    public void addSegments(D[] segmentData) {
        getControllerComponent().addSegments(segmentData);
    }

    public void addSegments(List<D> segmentData) {
        getControllerComponent().addSegments(segmentData);
    }

我正在使用Kotlin,在我的情况下,D类型是Long,并且我试图设置Long的列表,
val list: List<Long> = listOf(SportHandler.AMERICAN_FOOTBALL, SportHandler.FOOTBALL)
top_matches_segmented.addSegments( list )

但是不断出错:
None of the following functions can be called with the arguments supplied: public open fun addSegments(p0: (Nothing..Array<out Nothing!>?)): Unit defined in xxx.SegmentedControl public open fun addSegments(p0: (Nothing..List<Nothing!>?)): Unit defined in xxx.SegmentedControl
我也尝试提供多个Longs,但没有成功。

如何为该方法提供Longs列表以使此代码起作用?

谢谢!

最佳答案

我的错误是我没有将 View 引用为SegmentedControl<D>,并且编译器假定它的类型为SegmentedControl<Nothing>。以下行解决了该问题:

(top_matches_segmented  as SegmentedControl<Long>).addSegments( list )

09-30 14:32