@kotlin_lang

Страница 731 из 982
Костя
30.06.2018
12:07:44
изначально так и было

class HtmlConverterForDetailedDiscount : BaseConverter<DetailedDiscount>() { override fun getParser(): HtmlParser<DetailedDiscount> = HtmlParserForDetailedDiscount.newInstance() }

ошибка тут

Bogdan
30.06.2018
12:08:25
мы пришли к моему варианту )
Так out и in таже фигня в ддаве

Google
Alexander
30.06.2018
12:08:25
Тогда надо там, где объявляется getParser делать проекцию <out PR>, чтобы компиллятор знал, что могут быть наследники

Костя
30.06.2018
12:08:41
вот

Alexander
30.06.2018
12:08:45
Я и говорю, что в джаве оно тоже работь не будет

Костя
30.06.2018
12:08:49
возможно, это поможет

только как это сделать теперь )

abstract fun getParser(): HtmlParser<out PR> ?

Alexander
30.06.2018
12:09:24
ага

Bogdan
30.06.2018
12:09:34
только как это сделать теперь )
В методе парсер ставишь out

Костя
30.06.2018
12:09:34
ошибка та же (

Bogdan
30.06.2018
12:10:06
Там ведь тоже дденерик ?

Костя
30.06.2018
12:10:32
а кстати out PR неверно, так получается что мы указываем на наследников DetailedDiscount

а надо указывать наследников парсера

хм

Google
Костя
30.06.2018
12:11:04
ведь PR это DetailedDiscount

а не парсер

Bogdan
30.06.2018
12:11:21
Тогда два дженерика

Костя
30.06.2018
12:11:50
ну тип это объект в который мы парсим

а не сам парсер

Bogdan
30.06.2018
12:12:14
А не

Костя
30.06.2018
12:12:15
ну вот что-то похожее что надо 2 дженерика юзать что ли, для парсера ещё

или я уже устал в субботу работать походу )

Bogdan
30.06.2018
12:12:33
Отдельный

И там должен быть in или без ничего

Alexander
30.06.2018
12:13:24
В общем, я запутался. statement 1) наследники могут переопределять методы таким образом, чтобы возвращались наследники типов, которые заданы в предках statement 2) A<B:C> не является наследником A<C> statement 3) для того, чтобы это все-таки работало, надо писать A<out C> и мучиться с проекциями

В данном случае есть два вариабельных типа: <PR> и Parser<PR> и смотри не перепутай, кутузов

Alexander
30.06.2018
12:15:54
Ну так интерфейс не должен ничего знать о том, что за реализация используется.

Костя
30.06.2018
12:15:55
мне кажется что я уже перемудрил что-то

и так делать не надо. и надо упростить )

Google
Bogdan
30.06.2018
12:16:48
По сути метод будет возращать this

Костя
30.06.2018
12:17:01
кароч лучше сделаю просто, чтобы работало, и оставлю как задачу со звездочкой ))

эти дженерики ( вечно сложности с ними, всё происходит не так как задумано, нужно найти курс "продвинутые дженерики"

Bogdan
30.06.2018
12:19:02
Костя
30.06.2018
12:20:29
а всего лишь хотел отрефакторить это: interface HtmlParser<R> { fun parse(html: String): R } class HtmlConverterForDiscountList : Converter<ResponseBody, List<Discount>> { private val parser = HtmlParserForDiscountList.newInstance() override fun convert(value: ResponseBody) = parser.parse(value.string()) } class HtmlConverterForDetailedDiscount : Converter<ResponseBody, DetailedDiscount> { private val parser = HtmlParserForDetailedDiscount.newInstance() override fun convert(value: ResponseBody) = parser.parse(value.string()) }

Alexander
30.06.2018
12:21:00
С дженериками начинаются пляски с бубнами когда начинаются проекции. Без них все довольно мило и пушисто

Костя
30.06.2018
12:21:02
ну то есть тут 2 инстанса конвертера в каждом свой парсер от одного интерфейса

ато выглядит мягко говоря всё это неочень

dimiii
30.06.2018
13:01:11
Сорян, не вчитался

Sander
01.07.2018
11:57:53
Всем приет,

у меня вопрос по Kotlin: class Driver(name: String) : Person(name) { override var age: Int = 1 override fun getAddress(): String { return "Test 2" } override fun toString(): String { return "Person(name='$name', age=$age)" } } 1. первое что мне не очень понятно class Driver(name: String) : Person(name), зачем передавать Driver (name) -> в Person(name)? Что это вообще дает, я вдеь просто переопределяю методы "override", а без 2. как тот же код будет выглядеть в Java, может я пойму больше.

Sander
01.07.2018
12:28:35
@MightySeal спасибо

Sander
01.07.2018
14:13:51
@SchFuntik спасибо, очень помог

Roman
01.07.2018
16:28:40
Подскажите по gradle. Нужно приложение на kotlin + tornadoFX , https://guides.gradle.org/building-java-applications/ данный гайд пойдет ?

https://guides.gradle.org/building-kotlin-jvm-libraries/ по kotlin только это там

Bogdan
01.07.2018
16:30:42
Google
Roman
01.07.2018
16:31:43
а вообще на будущее если понадобится что-то типа hibernate/spring , для kotlin пойдет туториал для java приложений?

Yuri
01.07.2018
16:33:28
да

с поправкой на nullability и final by default

Roman
01.07.2018
16:35:02
в контексте настройки gradle )

Bogdan
01.07.2018
16:35:20
в контексте настройки gradle )
Гредл это вообще груви

Тут джава или котлин неважно

*почти

Roman
01.07.2018
16:36:03
ок, спасибо

Dibro
01.07.2018
16:36:26
Гредл это вообще груви
причём язык скриптинга билда к языку проекта???

Bogdan
01.07.2018
16:38:24
Dibro
01.07.2018
16:38:50
А почему это мне ?
ты про груви написал

Bogdan
01.07.2018
16:39:31
ты про груви написал
Ну гредл использеут яп груви

Dibro
01.07.2018
16:39:44
человек спросил про разницу конфигурации проекта написанного на джаве и котлине

к самому грейдл это отношения не имеет

Bogdan
01.07.2018
16:43:13
человек спросил про разницу конфигурации проекта написанного на джаве и котлине
Ну вроде идея сама первичную настроку генерить,и возникший вопрос мне показался странным

Для меня сборщик - инструмент для сборки проекта, не важно на каком яп

Andrey
01.07.2018
17:46:25
Может кто-нибудь проконсультировать. Попытался подключить startapp sdk, при билдинге выдает ошибку

Anton
01.07.2018
17:47:14
какую ошибку

Andrey
01.07.2018
17:56:06
More than one file was found with OS independent path 'META-INF/kotlin-stdlib.kotlin_module'

Google
Konstantin
01.07.2018
18:21:59
More than one file was found with OS independent path 'META-INF/kotlin-stdlib.kotlin_module'
Посмотрите в зависимости Sdk. У вас 2 kotlin stdlib

Konstantine
01.07.2018
22:47:58
Кто-нибудь знает, почему у базового класса для чисел нет функций для математический операций? Сложение, вычитание и т.д. Там только набор приведений.

Friedrich
02.07.2018
03:53:45
Ну гредл использеут яп груви
Как и ЯП Kotlin! https://github.com/gradle/kotlin-dsl — как тебе такое?

Bogdan
02.07.2018
03:55:00
Как и ЯП Kotlin! https://github.com/gradle/kotlin-dsl — как тебе такое?
Когда я в последний раз его юзал - хрестился

А как кстати с ним ? Юзабельный уже ?

Andrey
02.07.2018
05:22:18
Andrew
02.07.2018
06:05:20
More than one file was found with OS independent path 'META-INF/kotlin-stdlib.kotlin_module'
android { packagingOptions { exclude 'META-INF/*.kotlin_module' } }

Andrey
02.07.2018
06:06:14
android { packagingOptions { exclude 'META-INF/*.kotlin_module' } }
Вот так не пробовал, попробую. Спасибо!

Andrew
02.07.2018
06:07:35
Вот так не пробовал, попробую. Спасибо!
Возможны неточности, пишу по памяти с телефона. Плюс в последних версиях ещё надо игнорировать что-то о kotlin_metadata, но если вы увидите конкретный текст ошибки -- поймёте, как исправить.

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