Сторонняя библиотека Java требует параметр List, но не принимает список или массив Kotlin - PullRequest
0 голосов
/ 17 мая 2019

Я использую какую-то стороннюю библиотеку, написанную на 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 s,

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

Я также пытался предоставить массив Long, но безуспешно.

Как я могу предоставить список длинных для этого метода, чтобы этот код работал?

Спасибо!

1 Ответ

0 голосов
/ 18 мая 2019

Моя ошибка заключалась в том, что я не ссылался на представление как SegmentedControl<D>, а компилятор предполагал, что он имеет тип SegmentedControl<Nothing>.Следующая строка решила проблему:

(top_matches_segmented  as SegmentedControl<Long>).addSegments( list )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...