@kotlin_lang

Страница 728 из 982
Kirill
28.06.2018
07:12:41
Можно взять корневой ресурс и дальше каким-то образом попробовать изменить урл на уровнем выше

Yehor
28.06.2018
07:13:50
Каталог это не ресурс
просто если запустить без упаковки в jar то все работает нормально. Как человека малознакомого с jvm это сбивает с толку. Почитал про classLoader пока так и не понял почему так.

Можно взять корневой ресурс и дальше каким-то образом попробовать изменить урл на уровнем выше
т.е. создать пустой файл, его получать и обрезать имя файла? этикий "не красивый хак"

Google
Kirill
28.06.2018
07:14:55
Другой вопрос - зачем?

Yehor
28.06.2018
07:22:08
Другой вопрос - зачем?
писать временные данные в папку с портативным проектом. временные каталоги системы или пользовательской директории использовать не хочу, т.к. потом с нужными данными тяжело передать апликацию другому пользователю. использовать текущую директорию тоже не хочу, т.к. файл может быть запущен с другого каталога где этих файлов может не быть. в аргумент передавать каталог где лежит jar это извращение, дублированние данных (я и так при запуске указываю этот самый jar) программа генерирует данные и делает "mock" сервер. знаю что можно было использовать готовые решения для моков, но хотелось самому написать. если есть совет как это сделать, буду очень признателен.

Yehor
28.06.2018
07:25:46
погугли идея как сделать джар
https://www.jetbrains.com/help/idea/working-with-artifacts.html тут описано. но тонкой настройки или билд системы на чем работает intellij я не нашел.

Yehor
28.06.2018
07:27:05
а чего гредлом не запускаешь ? или мавеном ?
можно, но хотел сначала понять почему разработчики инструмента каким я начал пользоваться решили что "их система лучше" то что в настройках можно переключить на gradle tasks я знаю.

Bogdan
28.06.2018
07:27:47
https://ru.stackoverflow.com/questions/427538/%D0%9A%D0%B0%D0%BA-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-jar-%D0%B0%D1%80%D1%85%D0%B8%D0%B2-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-%D0%B2-intellij-idea

https://javarush.ru/groups/posts/1352-kak-sozdatjh-ispolnjaemihy-jar-v-intellij-idea--how-to-create-jar-in-idea

вот еще

Yehor
28.06.2018
07:32:35
там вроде описано как запустить джар, а не собрать
"Building artifacts" там есть раздел на 7 строк :) и там написано как раз про это. я гуглил и читал доки. просто у меня все работает, но я хотел узнать может где есть подробное описание их билд системы. повторю. все работает, все собирает, все хорошо. окромя того что ресурсы не кидает в jar.

Google
Yehor
28.06.2018
07:39:04
Kirill
28.06.2018
07:40:14
А вообще такие штуки лучше хранить в /usr/share или ~/.config

Ну или AppData в случае бгмерзкой

Yehor
28.06.2018
07:42:34
А вообще такие штуки лучше хранить в /usr/share или ~/.config
как потом передавать кому-то апп? двумя архивами? :) а если надо запустить два сервера? (с разными портами)

Kirill
28.06.2018
07:43:40
Кстати все что в каталоге запуска автоматически является ресурсами

Yehor
28.06.2018
07:44:57
Билд-система, вшита в идею. В гитхабе можно посмотреть, что это. jps называется
спасибо. посмотреть на гитхабе в проекте что-то не подумал.

Kirill
28.06.2018
07:45:58
Ну да или makefile
Deb, rpm, ebuild, nixpkg, вот это всё

Kirill
28.06.2018
08:07:43
Привет, подскажите как мне сделать bool переменную, чтобы в Java она выглядела как примитивная джавовая переменная?

то есть как bool а не Boolean

Alexander
28.06.2018
08:08:06
Boolean

в джаве нет bool, есть boolean и котлиновский Boolean конвертится в примитив

где это возможно

Kirill
28.06.2018
08:09:38
окей

Google
Alexander
28.06.2018
08:09:50
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html

Peter
28.06.2018
08:32:22
всем привет. подскажите пожалуйста насчет яндекс карт и котлина. 1. есть проект на java (старый), там используются яндекс карты ru.yandex:yandexmapkit:2.5.4@aar даже если ключ там указать не правильный, карты запускаются и показываются. 2. есть новый проект на kotlin, куда я переношу новый валидный api ключ и карты не отображаются ни на версии sdk 2.5.4, ни на 3.0.0 подключаю по туториалу яндекса. Может это быть связано с котлин?

Igor
28.06.2018
08:49:22
В любом случае это сюда @kotlin_mobile

Глеб
28.06.2018
09:14:10
Господа, есть вопрос, на который я как-то пытался сыскать ответ. Хочу проверить переменную на null и выполнить действие не только в случае, если она не null, но и в обратном случае. На ум приходит только if (a!=null) else и вот такая борода с ?.let: a?.let { doSomething(it) } ?: { oopsAIsNull() }(). Оно компилируется и работает, но я не уверен, что нет лучшего решения.

Dibro
28.06.2018
09:21:21
это почему?
потому что лет возвращает значение

если doSomething(...) -- Unit, то ничего страшного, конечно

Глеб
28.06.2018
09:23:04
Да, в целом рассчет на то, что там Unit

Dibro
28.06.2018
09:23:24
все же

лучше ифа вряд-ли что-то есть

через лет -- костыль на мой взгляд

Глеб
28.06.2018
09:23:56
с if есть проблема, если использовать не с переменной, а с пропертёй

воооот...

Google
Alexey
28.06.2018
09:24:31
лучше ифа вряд-ли что-то есть
inline fun <A, B> A?.fold(ifNull: () => B, ifNotNull: (A) => B) = if(this == null) ifNull() else ifNotNull(this)

Dibro
28.06.2018
09:24:42
у тебя лямбды поломались кстать

Alexey
28.06.2018
09:25:38
щас бы к синтаксису докапаться

Bogdan
28.06.2018
09:25:57
inline fun <A, B> A?.fold(ifNull: () => B, ifNotNull: (A) => B) = if(this == null) ifNull() else ifNotNull(this)
можно сделать с инфиксом еще, чтобы функция возраща объект IF и на ней можно было вызвать инфиксную функцию Else с лямдой

Глеб
28.06.2018
09:26:02
Разве fold не для чего-то другого обычно используют?

Alexey
28.06.2018
09:26:41
Ну например в скалке у Option.fold примерно такая сигнатура

И это значительно читаемее чем if

Глеб
28.06.2018
09:27:44
да если-бы просто if, то я-бы даже не озаботился этим вопросом. А вот val a = a; if(a)... - это уже проблема.

Alexey
28.06.2018
09:27:47
nullableResult.fold( () => default someFun )

Oleg
28.06.2018
09:28:34
чем вас when тогда не устраивает?

примерно то же самое и выйдет

Bogdan
28.06.2018
09:29:02
примерно то же самое и выйдет
мне кажется даже красивей

Dibro
28.06.2018
09:29:22
чем вас when тогда не устраивает?
для проперти лишние вызовы

dimiii
28.06.2018
09:29:51
для проперти лишние вызовы
В каком смысле лишние?

Alexey
28.06.2018
09:30:09
Там не будет смарткаста

Глеб
28.06.2018
09:30:19
примерно то же самое и выйдет
разве ему не придется проделывать тот-же финт, что и с if, чтобы не поломался смарт-каст?

dimiii
28.06.2018
09:30:33
(nice)

Dibro
28.06.2018
09:31:53
В каком смысле лишние?
ну например проперти вычисляема, тогда для каждой ветки when'а будет заново. хотя смотря как написать

Google
Igor
28.06.2018
09:34:45
nullableResult.fold( () => default someFun )
Ох уж эти жирные стрелки - absolutely disgusting ? (говорю как ценитель ml-языков)

dimiii
28.06.2018
09:36:04
В ход не пошли варианты с arrow-kt - и на том спасибо

Глеб
28.06.2018
09:40:26
fold ништяк. И смарткасты работают, и не так натянуто на глобус как с let

спасибо

Жабра
28.06.2018
12:29:42
Подскажите, пожалуйста: от сервера приходит ответ, парсю его kotson-ом (kotlin-gson) в такой класс class Response( val context: String, val function: String, val `object`: String, @SerializedName("requested_element") val requestedElement: ArrayList<User>?, val status: String ) Но проблема в том, что в зависимости от object у меня могут быть разные requestedElement: либо User, либо Device. Делать два класса на Response чёт не хочется... Как лучше сделать?

Жабра
28.06.2018
12:32:02
дженерик?..
Не совсем понял, что именно вы предлагаете. Я попытался сделать типо sealed class Entity class User(...) : Entity() class Device(...) : Entity() и там val requestedElement: ArrayList<Entity>? Но чёт не вышло, gson не понимает.

Quantum Harmonizer
28.06.2018
12:32:53
class Response<T>( ..., val requestedElement: List<T>, ... )

Жабра
28.06.2018
12:33:10
1337
28.06.2018
12:36:16
как идиоматично определить @TestRule используя котлин?

через @jvmfield?

Uladzimir
28.06.2018
12:39:26
Добрый день, подскажите пожалуйста, какую либу лучше использовать для отправки http(s)запросов ?

Uladzimir
28.06.2018
12:40:29
OkHttp
ок, спасибо!

dimiii
28.06.2018
12:42:14
Админы, как насчет того, чтобы проводить голосования - кто какие библиотеки использует, style checkers, test, assertion/matchers, orm, web блабла - вот это все?

Anton
28.06.2018
12:44:04
зачем?

dimiii
28.06.2018
12:50:01
зачем?
У меня нет другого ответа, кроме очевидного, который не требует озвучивания

Anton
28.06.2018
12:51:15
я просто не вижу профита от этого поэтому и спросил) можем еще викторины по субботам проводить с призами

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