我使用一些用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 )