169 похожих чатов

Здравствуйте, подскажите плз что означает это выражение в kotlin (MutableList<SkuDetails!>?..List<SkuDetails!>?)

у аргумента функции

18 ответов

15 просмотров

чет дикое) вообще .. это рендж, но рендж между 2мя листами - хз, может у тебя где-то этот оператор переопределен и что-то хитрое делает

а есть тело функции? посмотреть что делают вообще с аргументом

Alexander-K Автор вопроса

это так android studio дает подсказку на SkuDetailsResponseListener local final fun <anonymous>( billingResult: BillingResult, skuDetailsList: (MutableList<SkuDetails!>?..List<SkuDetails!>?) ): Unit

Этот аргумент какого типа реального? Он из джавы? Обычно студия некоторые джавовские классы пытается так отобразить.

Alexander-K Автор вопроса

это из BillingClient насколько я понял... Я просто не понимаю что значит такое описание аргумента? Типа может быть MutableList или List ? не понятно

этот откуда ты взял? сконвертил с джавы ?

Студия пытается джавовский тип показать как котлиновский. Иногда выходит такая фигня

Alexander-K Автор вопроса

Это чужой код, меня попросили поправить если смогу... Насколько я понял это все тянет Gradle: implementation 'com.android.billingclient:billing:3.0.3'

Mutable - значит в таком списке можно добавлять или удалять элементы.

В общем, можно передавать всех, кто реализует List: public interface SkuDetailsResponseListener { void onSkuDetailsResponse(@NonNull BillingResult var1, @Nullable List<SkuDetails> var2); }

Alexander-K Автор вопроса

Ну да, судя по докам там List, а студия ругается Type mismatch: inferred type is (Mutable)List<SkuDetails!>? but List<SkuDetails> was expected

Значит, котлин не может понять, какой тип вы пытаетесь передать. Похоже, вы ему даете что-то нуллабельное. А зачем?

Alexander-K Автор вопроса

А почему такое происходит? Там же в интерфейсе четко написано что List, а он видит MutableList

Я не телепат, я не знаю, что вы там написали и как.

Alexander-K Автор вопроса

Вот интерфейс который декопилит по ctrl+q студия ``public interface SkuDetailsResponseListener { void onSkuDetailsResponse(@NonNull BillingResult var1, @Nullable List<SkuDetails> var2); }`` Тут List...

Спасибо, я это же самое вам отправил чуть раньше. ВЫ САМИ что передаете?

в джаве List изменяемый, т/е в котлине это MutbleList, не знаю поможет ли эта информация

Alexander-K Автор вопроса

анонимную функцию такого вида billingClient.querySkuDetailsAsync(params.build()) { billingResult, skuDetailsList -> if (billingResult.responseCode == BillingResponseCode.OK) it.onSuccess(skuDetailsList) } ругается на it.onSuccess(skuDetailsList) т.к. onSuccess ждет List. Но там и должен быть лист судя по интерфейсу Можно было бы сделать it.onSuccess(skuDetailsList as List<SkuDetails>) но это как-то неправильно )

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта