@KotlinLangRu

Страница 38 из 90
Kamo
14.11.2017
09:21:17
Привет, коллеги. Помогите решить вопрос с generic-ами, пожалуйста. Имеется абстрактный класс BaseObj и абстрактная вьюха, котора хранит в себе этот объект - BaseView. BaseView - generic класс, т.е. в Java объявлена как BaseView<T extends BaseObj>. Далее имеется фабрика, которая берет на вход дочерние объекты (наследников BaseObj) и возвращает нужную вьюху - наследника BaseView. Вот метод на kotlin: fun <T : BaseObj> getViewForObj(obj: T): BaseView<T>? { return when (obj.getType()) { TYPE1 -> View1(obj) TYPE2 -> View2(obj) TYPE2 -> View3(obj) else -> null } } Но так не работает, ругается, что несоответствуют типы возвращаемых значений, то есть он не может скастить View1 к BaseView<T> при том, что View1 extends BaseView<Obj1>. Как правильно решить эту проблему?

Sergey
14.11.2017
09:27:32
out попробуй проставить

Kamo
14.11.2017
09:27:51
куда?

fun <T : OrderDetail> getViewForOrderDetail(context : Context, orderDetail: T): BaseOrderDetailView<out T>? { вот так не работает

Google
Sergey
14.11.2017
09:46:59
fun <T : BaseObj> getViewForObj(obj: T): BaseView<Any>?

вот так попробуй

Kamo
14.11.2017
10:04:20
Через * вроде заработало

Да, работает. Спасибо!

Illia
16.11.2017
12:47:26
У кого-то есть ссылки на руководство как попробовать kotlin js ?

Михаил
16.11.2017
13:39:47
https://blog.jetbrains.com/kotlin/2017/11/kotlinnative-v0-4-released-objective-c-interop-webassembly-and-more/

RadioButton
16.11.2017
20:45:19
Так что учить то блин? Java8,9 или Котлин?

Миша
16.11.2017
20:46:12
Учи php и забей

Ростислав
16.11.2017
20:47:25
Так что учить то блин? Java8,9 или Котлин?
Я не в курсе разговора, но учить и то, и другое. Java 8\9 примерно одинакова (точнее на 99% :)). Прикол здесь в следующем: как по мне, Kotlin куда более перспективен и постепенно будут переходить на него. Развиваться будет именно он, а не Java. Но на Java уже написана громадная кодовая база, которую нужно использовать в работе и, чтобы ее использовать, нужно знать Java.

Ростислав
16.11.2017
20:50:10
а разве джава и Котлин не дружат? в каком-то видео слышал, что в проекте можно на 2 кодить
Я об этом и говорю. Писать будешь-то все равно на одном языке и лучше для этого использовать Котлин. Однако, подключать библиотеки\старый код на Java и ты должен понимать, что там происходит.

Google
RadioButton
16.11.2017
20:51:48
все, решил. обновил студию до 3.0 и начинаю "котлинить"

ещё б линукс поставить (:

Ростислав
16.11.2017
20:53:17
все, решил. обновил студию до 3.0 и начинаю "котлинить"
Просто прочти книгу-другую о Java, сделай пару мелких проектов на Java и можешь считать, что этого тебе хватит. Дальше, когда столкнешься с ней "лицом к лицу" — сможешь разрулить ситуацию. Максимум загуглишь.

RadioButton
16.11.2017
20:53:44
д всм я знаю java7..

Ростислав
16.11.2017
20:54:13
ещё б линукс поставить (:
Если ты решил идти совсем по хардкору — ставь Debian :). Оболочка XFCE красиво выглядит.

д всм я знаю java7..
А... Тогда вообще не парся.

Quantum Harmonizer
16.11.2017
21:43:58
Ростислав
16.11.2017
21:44:51
Ну вот у меня xubuntu, ничего щедеврального не вижу.
А я говорил про что-то шедевральное? Просто красиво.

Oleg
16.11.2017
21:45:52
лучше ставить самый популярный дистрибутив - поддержка лучше

Ростислав
16.11.2017
21:48:35
лучше ставить самый популярный дистрибутив - поддержка лучше
На самом сложном быстрее въедешь в работу со всей этой неразберихой установки пакетов, зависимостей, настроек, базовых команд и скриптов. Иначе зачем ставить Linux, если есть Windows? :)

Ростислав
16.11.2017
21:51:55
лучше ставить самый популярный дистрибутив - поддержка лучше
Если дать тебе ту же Убунту, вряд ли ты полезешь разбираться в базовых командах. А так ты разберешься и уже даже в Убунте будешь пользоваться.

sudo apt install проще установки любого виндового софта)
package is not installation candidate. You have broken headers. :)

Страница 38 из 90