
Sergey
31.03.2017
10:37:25
но спринг не умеет еще такого, поэтому all-open в любом случае будет в плагинах

Руслан
31.03.2017
10:37:30

Quantum Harmonizer
31.03.2017
10:38:01

Igor
31.03.2017
10:38:32
делегация классов помогла?
Ты мне так и не ответил, на уточняющий вопрос.
Это мне нужно для каждого интерфейса вручную заводить дополнительный класс-заглушка?

Google

Руслан
31.03.2017
10:39:33

Igor
31.03.2017
10:39:40
Тут кстати говорят что она ломает инкрементную компиляцию в Android
https://developer.android.com/studio/build/optimize-your-build.html#annotation_processors
Как это с Kotlin работает, вообще не понятно (хотя у Kotlin свои проблемы с AP).

Михаил
31.03.2017
10:41:26
правильно говорят)

Quantum Harmonizer
31.03.2017
10:41:58
у меня PermissionDispatcher вроде не сломал)

Руслан
31.03.2017
10:46:47
Ты мне так и не ответил, на уточняющий вопрос.
Это мне нужно для каждого интерфейса вручную заводить дополнительный класс-заглушка?
Ну вот что-то такое, если у тебя большие интерфейсы, а нужно застабить только один метод, может быть полезно
fun main(args: Array<String>) {
val stub = MyServiceStub(DefaultMyService())
stub.doWork() // stubDoWork
}
interface MyService {
fun doWork()
fun init()
fun destroy()
}
class DefaultMyService : MyService {
override fun init() = println("init")
override fun doWork() = println("doWork")
override fun destroy() = println("destroy")
}
class MyServiceStub(val myService: MyService): MyService by myService {
override fun doWork() = println("stubDoWork")
}

Igor
31.03.2017
10:47:21

Quantum Harmonizer
31.03.2017
10:47:50

Igor
31.03.2017
10:54:08

Митко Соловец?
31.03.2017
10:54:52
ребят, а давно в Котлине new выпилили?

Руслан
31.03.2017
10:55:00

Igor
31.03.2017
10:55:11

Sergey
31.03.2017
10:55:11

Google

Митко Соловец?
31.03.2017
10:55:34

Руслан
31.03.2017
10:55:37
Хорошо сказано ?

Igor
31.03.2017
10:56:58

Руслан
31.03.2017
11:05:55

Igor
31.03.2017
11:08:10

Sergey
31.03.2017
11:08:36
junit

Руслан
31.03.2017
11:08:51

Sergey
31.03.2017
11:09:21
Dmitry Jemerov [JB]
используйте тот, который вам нравится. мы сами используем просто junit

Руслан
31.03.2017
11:09:56

Igor
31.03.2017
11:10:08

Руслан
31.03.2017
11:10:13
одно другого не отменяет

Igor
31.03.2017
11:11:11
одно другого не отменяет
Он не против (наверное), просто говорил что они его не юзают и у них нет проблем с final.
Короче надо глянуть сорцы Kotlin ?

Руслан
31.03.2017
11:11:45
Ну я его юзаю, и у меня нет проблем с final)

Sergey
31.03.2017
11:12:26
у них data driven тесты в сорсах, им там моки не нужны

Андрей
31.03.2017
12:30:17

Михаил
31.03.2017
13:46:56
В мокита не так давно можно стало файнал мокать

Андрей
31.03.2017
15:29:24
Почему не так давно? Пол года прошло уже.

Михаил
31.03.2017
18:13:58
не только у дядушки боба про закрытые классы. в эффектив джаве тоже
можно ли такой метод на котлине без анчекед каста написать?

Google

Михаил
31.03.2017
18:15:29
https://pastebin.com/hN3eNpyD

Boris
31.03.2017
18:23:30
stubEntityClass.createInstance()

Михаил
31.03.2017
18:31:23
?
на refied дженерике?

Boris
31.03.2017
18:32:25
как вариант, да
inline fun <reified K> create():K = K::class.createInstance() типа того
или так
fun <T> makeStub(stubEntityClass: Class<T>): T =
when (stubEntityClass) {
UserRes::class -> UserRes()
UserLoginReq::class -> UserLoginReq()
UserInfoDto::class -> UserInfoDto()
MenuItemHolder::class -> MenuItemHolder()
else -> throw IllegalArgumentException("There is no stub for class")
} as T

Igor
31.03.2017
18:38:24

Boris
31.03.2017
18:38:42
конечно будет, но только в одном месте %-)
https://pastebin.com/kGFg6DA5

Roman
31.03.2017
19:20:16
при сборке андроид проекта получаю в логах:
Could not connect to kotlin daemon. Using fallback strategy.
как это пофиксить?

Roman
31.03.2017
19:20:43
и еще вот это Could not perform non-incremental compilation with Kotlin compile daemon, non-incremental compilation in fallback mode will be performed

Tony
31.03.2017
20:13:35
а котлин как-то генерит айдишник объекта?
если нет, то как я могу создать автоинкрементирующийся айдишник?

Михаил
31.03.2017
20:16:05

Tony
31.03.2017
20:16:23

Михаил
31.03.2017
20:17:25
Сделай компанион обжект со счетчиком
И инкременть его когда надо
Ну это и в джаве можно

Tony
31.03.2017
20:19:57
то есть в инициализаторе?

Google

Tony
31.03.2017
20:20:05
я не очень понимаю
а вы пишете на котлине на кэмл кейзе или снейк?

Sergey
31.03.2017
20:34:31
кэмл канеш
это ж не питон)

Quantum Harmonizer
31.03.2017
20:37:16
private companion object {
private val counter = AtomicInteger()
}
val id: Int
init {
id = counter.incrementAndGet()
}
будет служить тебе верой и правдой до первого перезапуска приложения)

Tony
31.03.2017
20:39:15

Quantum Harmonizer
31.03.2017
20:39:42
вынеси val в property

Tony
31.03.2017
20:40:53

Admin
ERROR: S client not available

Quantum Harmonizer
31.03.2017
20:41:24
Нет, тогда можно будет лешко плодить пользователей с одинаковыми id.

Tony
31.03.2017
20:41:35
хорошо
что делать?
в питоне @property

Quantum Harmonizer
31.03.2017
20:42:13

Tony
31.03.2017
20:42:56
хм
надо тогда геттер создать для него
в котлине точно есть что-то крутое для этого

Google

Quantum Harmonizer
31.03.2017
20:43:38

Tony
31.03.2017
20:44:32

Quantum Harmonizer
31.03.2017
20:44:57

Tony
31.03.2017
20:45:07
бля
какой же ахуенный язык

Sergey
31.03.2017
20:45:30
?

Quantum Harmonizer
31.03.2017
20:45:44
val x: Int
эквивалентно
private int x;
public int getX() { return x; }

Sergey
31.03.2017
20:45:49
я дико тащусь с генераторов секвенций

Quantum Harmonizer
31.03.2017
20:46:20

Sergey
31.03.2017
20:49:28

Tony
31.03.2017
20:50:23

Sergey
31.03.2017
20:53:02
единственное чего иногда не хватает в плагине котлина, так это просмотра выведенных типов
щас хоть начало показывать тип переменных, а то совсем недавно это было проблемой

Tony
31.03.2017
20:57:44
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)
так я делаю для интов

Sergey
31.03.2017
20:58:05
тебе прям примитивы нужны?

Tony
31.03.2017
20:58:06
а как сделать также для моих Customer

Sergey
31.03.2017
20:58:18
listOf

Tony
31.03.2017
20:58:52
listOf
а лист это случаем не свзный список?

Sergey
31.03.2017
20:59:53
ArrayList

Tony
31.03.2017
21:05:49
val testArray: ArrayList<Customer> = ArrayList(10)