@kotlin_lang

Страница 937 из 982
Костя
09.10.2018
14:07:53
например var arrayAdapter: BaseAdapter<Realty> или var arrayAdapter: BaseAdapter<"наследники" : Realty> и чтобы я мог как в коллекцию юзать add, addAll и передавать туда наследников Realty

Andrey
09.10.2018
14:08:25
я вроде понимаю в чем дело, просто андройдовский ArrayAdapter просто <T> то есть он держит массив каких-то элементов, может чистить его, добавлять, принимать
Ну вот представьте ситуацию: Есть у вас HouseCardAdapter и LandCardAdapter, которые вы присваиваете переменной с типом ArrayAdapter<*> Потом вы вызываете addAll(lands) Как компилятор может гарантировать, что вы не пытаетесь запихать lands в HouseCardAdapter, если у вас тип переменной не декларирует явно, какой именно адаптер используется? Правильно, никак. Вот он и не даёт вам использовать addAll так как это небезопасно с точки зрения системы типов.

Костя
09.10.2018
14:08:59
а в джава работало бы вроде

в List<BaseItem>

Google
Костя
09.10.2018
14:09:13
пихать любые его наследники

Alexey
09.10.2018
14:09:53
Ну как бы это совсем 2 разные ситуации

Попрубуй создать List<BaseItem> list = new ArrayList<SpecificItem>() и тебя так же компилятор пошлёт

Костя
09.10.2018
14:11:56
это верно

но в тоже время ArrayList<BaseItem>()

прокатит

поидее

и туда можно будет класть любые наследники BaseItem

Alexey
09.10.2018
14:12:37
Ну дак и new BaseAdapter<Realty>

Костя
09.10.2018
14:12:38
в такую коллекцию

Alexey
09.10.2018
14:12:40
тоже прокатит

Костя
09.10.2018
14:12:59
ну вот нет

а хотя

Google
Костя
09.10.2018
14:13:20
ну тогда там типо каст юзать

Alexey
09.10.2018
14:13:20
?

Костя
09.10.2018
14:13:22
внутри

просто суть такая что я глобальные вещи совпадающие определяю в базовом адаптере, отличающиеся хочу в конкретном

а так получится ручками кастанул инстенсоф и юзанул метод один или другой

в зависимости от объекта (

Alexey
09.10.2018
14:15:19
Чуешь, что уже чем то попахивает?

Костя
09.10.2018
14:15:36
с кастом ?

конечно

10 элементов разных и там такое будет в адаптере таком

что жусть

Alexey
09.10.2018
14:16:15
Видимо не надо делать через один адаптер?

Видимо глобальная переменная - это кака?

Костя
09.10.2018
14:16:46
и как иначе ?

если фрагмент один

но элементы разные в адаптерах

и инициализация разная

Andrey
09.10.2018
14:18:37
У вас либо один адаптер, который умеет добавлять и Land, и House, и другие Realty, тогда его можно присвоить вашему полю. Либо специализированные, которые умеют работать только с чем-то одним, и тогда их должно быть несколько разных и полей несколько.

Костя
09.10.2018
14:19:12
первый вариант ок, но там будет попа если расширять

этот бедный 1 класс

Google
Костя
09.10.2018
14:19:38
ну а второе норм, но хранить во фрагменте адаптеров кучу разных и инициализировать (

Andrey
09.10.2018
14:19:44
Иначе можно напороться на попытку добавить в HouseCardAdapter какой-нибудь Land в рантайме и поймать class cast

Костя
09.10.2018
14:19:44
как же такое правильно решается ?

делать какие-то холдеры разные норм решение ?

похоже нет (

Andrey
09.10.2018
14:21:34
как же такое правильно решается ?
Ну чтобы понять, как такое решается, надо сначала понять, какую именно проблему вы хотите решить.

Костя
09.10.2018
14:22:38
во фрагменте есть view, которая принимает adapter(это не список, штука с более сложной анимацией), adapter разные, т&r& разные флоу

вот такая проблема

решить чтобы было красиво, элегантно и расширяемо

ну добавлять каждый раз отдельную переменную во фрагмент(свой адаптер) имхо так себе, писать логику в одном адаптере для всех типов, тоже как-то так

вот и пока решения не осознал как такое решать )

Andrey
09.10.2018
14:24:37
То есть, есть view, который принимает некий адаптер и что-то с ним делает. view только читает из адаптера? Ничего туда не пытается пихать?

Жабра
09.10.2018
14:24:49
https://gist.github.com/indrih17/51f3f076eaa262ec18c8b3e876a5ac6f что не так? Почему теперь тут не видит 1.3.0-eap13? Вроде всё добавил.

Andrey
09.10.2018
14:25:49
Кто и где вызывает adapter.addAll?

Костя
09.10.2018
14:28:33
на моем экран я вызываю, когда данные загрузились

также при листании запускается загрузка второй страницы

и тоже добавляется она через addAll

в адаптер

Kirill
09.10.2018
14:44:37
Привет, подскажите где можно взять список городов России с координатами центров? Для выбора в приложении нужно

Google
Kirill
09.10.2018
14:46:22
спасибо, попробую

Руслан
09.10.2018
14:56:29
Никто не прописывал eap версию в kotlin gradle dsl?
в settings.gradle.kts: pluginManagement { repositories { jcenter() maven { setUrl("http://dl.bintray.com/kotlin/kotlin-eap") } } }

Руслан
09.10.2018
14:58:31
в settings.gradle.kts: pluginManagement { repositories { jcenter() maven { setUrl("http://dl.bintray.com/kotlin/kotlin-eap") } } }
можно еще так: pluginManagement { repositories { jcenter() maven { url = uri("http://dl.bintray.com/kotlin/kotlin-eap") } } } чуть больше похоже на groovy gradle

Beholder
09.10.2018
15:03:34
про дату релиза пока не слышно?

флуд сразу пропал...

Admin
ERROR: S client not available

Pavel
09.10.2018
16:00:02
есть ли в kotlin способ избавиться от методов, переопределение которых я хочу оставить по умолчанию (ничего не делать там)

то есть оставить только метод onChildAdded

Алексей
09.10.2018
16:01:06
Делегат + переопределение того, что тебе нужно

Как вариант

Pavel
09.10.2018
16:02:31
Делегат + переопределение того, что тебе нужно
А можешь чуть подробнее об этом?

Алексей
09.10.2018
16:05:02
А можешь чуть подробнее об этом?
Я иерархию классов rxJava не знаю. Вообще, вопрос решается банально отсутствием переопределения методов, которые не нужны, но если класс абстрактный или и вовсе интерфейс - есть конструкция class Something: InterfaceName by ImplrmentationName

class Something: InterfaceName by ImplrmentationName - тут ты делегируешь ImplrmentationName поведение для InterfaceName

А дальше делай override того, что нужно

Pavel
09.10.2018
16:06:30
Алексей
09.10.2018
16:06:58
?

Google
Nameless
09.10.2018
16:55:47
а 2-а уже нет
да что спорить, Бреслав уже сказал что сделают

Bogdan
09.10.2018
16:56:38
Сегодня 09.10.2018 - котлин умер

Sergey
09.10.2018
16:56:55
что вы тут несете вообще?

Bogdan
09.10.2018
16:56:58
(для меня)

Nameless
09.10.2018
16:57:18
Сегодня 09.10.2018 - котлин умер
из-за обещаний сделать тернарник?)

Bogdan
09.10.2018
16:57:41
осталось чекед ексепшины завести для 100% нтеропа с джавой

из-за обещаний сделать тернарник?)
нет, из-за того что сильно птаются угодить там где не нужно

Nameless
09.10.2018
16:58:57
нет, из-за того что сильно птаются угодить там где не нужно
ну надо понимать язык не для одного человека пишется и котлин много кому пытается угодить, пока хорошо вроде получается

Bogdan
09.10.2018
17:00:14
ну надо понимать язык не для одного человека пишется и котлин много кому пытается угодить, пока хорошо вроде получается
я вижу, один зашел бесконеынй цикл просить, другие скалу, трети самы, четвертые тернарник.

Bogdan
09.10.2018
17:00:50
5-ые std либу хотять разрезать

Nameless
09.10.2018
17:00:58
хочется минимализма - идем в го

dimiii
09.10.2018
17:01:08
...имплиситы, тайплклассы - шиза полная последнее время

Bogdan
09.10.2018
17:01:47
...имплиситы, тайплклассы - шиза полная последнее время
ждем скоро, у меня такое ощущения что релиз 1.3 последний нормальный

Igor
09.10.2018
17:07:57
ждем скоро, у меня такое ощущения что релиз 1.3 последний нормальный
Ну такое, эта структурная-конкаренси то же своеобразна (короче - раньше было лучше)

Страница 937 из 982