
Alexander
19.08.2018
21:51:27
в примере у тебя ваще непойми что происходит
если сделать более правильно как в примере - оно работать не будет, т.к. хранить мапу в новосозданной функции которая после вызова не нужна - ну ок, бессмысленно
тебе нужно вернуть функцию, которая внутри будет уже хранить эту мапу в которой будет делаться computeIfAbsent
проще кодом показать

Google

Maxim
19.08.2018
21:55:02
Что значит функция не нужна. Она дальше по стеку передается: store.computeIfAbsent(input, key -> function.apply(this, key))
this и отдает эту самую функцию (на самом деле экземплят анонимного класса) в качестве аргумента. А этот экземпляр содержит в себе поле с мапой.

Alexander
19.08.2018
21:55:32
вот так это работать будет
а вот твой код я даже скопировав так и не понял как вызвать

Maxim
19.08.2018
21:56:33
Эта хрень правда ломает голову. Прежде чем писать догадки повтыкай в него каое-то время.

Alexander
19.08.2018
21:56:44
ну и пробрасывание this в функцию, где будет вызов этой же функции

Maxim
19.08.2018
21:56:49
Я же дал прямую ссылку на репо. Там два класса, у одного из них есть мейн метод: https://github.com/xCASx/fp-in-java/tree/master/src/main/java/fp/in/java/recursion/memoization

Alexander
19.08.2018
21:56:59
ага
особенно у мемоизера

Maxim
19.08.2018
21:57:15
Ну и в чем проблема запустить?

Alexander
19.08.2018
21:57:27
ты сам то по ссылке пройди
там и без мейна видно что бред какой-то происходит, потому computeIfAbsent рекурсивно сам в себя приходит

Maxim
19.08.2018
22:02:43
computeIfAbsent зовет BiFunction, которая снова вызовет memoized, что может привести к повторному мызову computeIfAbsent. Это и происходит. Я об этом с самого начала написал.
Но memoized сам себя нигде не вызывает. Т.е. код не рекурсивный, а рекуррентный.
А вопрос на миллион долларов: как это заставить работать как задумал автор?

Google

Aleksey
19.08.2018
22:32:31
По-моему, никак. И вторичный вход в computeIfAbsent (особенно для того же ключа) на моей памяти является логической ошибкой, которую коллекция может задетектить, а может и нет.

Maxim
19.08.2018
22:36:00
Непонятно как за 5 лет существования книги никто этого не зарепортил. Как вообще такой код попал в примеры, там же целая глава вокруг этого подхода написана. Похоже, пора призывать Венката.

Alexey
20.08.2018
03:47:36

Bogdan
20.08.2018
04:40:43

Alexandr
20.08.2018
05:20:34
как то тут было обсуждение за галеры и бодишопы. наброшу еще?
кто что о КРОКе слышал?
тоже бидишоп?

Mackenlly
20.08.2018
05:25:44
С одной яблони яблоки

Akim
20.08.2018
06:23:16
А есть статья про крок? я о них только хорошее читал

Denis
20.08.2018
06:48:33

Mikhail
20.08.2018
06:51:03
ку
помогите мне с идеями
не вполне дев, скорее девопс
есть DTLS поток данных, есть прокси (goldy) которая из DTLS делает UDP и шлет себе дальше, короче, обычная тема
но фишка в том, что порты у меня динамические, может приехать поток на любой порт от 10000 до 65535
вот и как это хорошо сделать?
запустить прокси, чтобы она слушала все-все-все порты?)

Akim
20.08.2018
06:53:36
слушать одном на входном потоке и потом перебрасывать на другие?

Mikhail
20.08.2018
07:05:13

Google

Mikhail
20.08.2018
07:05:26
но как проси тогда узнает, на какой порт какой поток переправлять?

Akim
20.08.2018
07:07:04

Enterpise
20.08.2018
07:18:56
как правильно отловить проблему интероперабельности
вызов нативной dll, которая загружает jvm
враппер через DllImport
невозмножно отловить стек исключения
из-за вероятной проблемы с путями
ну нельзя просто так взять передать стек ява в дот нет, дьа

Anton
20.08.2018
07:29:42

Anton
20.08.2018
07:30:33

Vladimir
20.08.2018
07:36:45

Enterpise
20.08.2018
07:36:50
Не понял вашего ответа

Enterpise
20.08.2018
07:37:11
как в дотнете правильно загружать нативную библиотеку враппер, которая грузит jvm.dll и потом jar
LoadLibraryExA

Таир
20.08.2018
07:41:06

Andrey
20.08.2018
07:42:28

Enterpise
20.08.2018
07:44:37

Mikhail
20.08.2018
07:53:55
эта прокси получает DTLS датаграммы и разбирает их в обычный UDP

Vladimir
20.08.2018
07:54:59

Google

Mikhail
20.08.2018
07:55:30
модифицировать в какую сторону:?
слушать все порты?
это то, с чем я пришел, если ничего умнее не придумаю - так и буду делать

Admin
ERROR: S client not available

Vladimir
20.08.2018
07:58:02

Mikhail
20.08.2018
08:00:26

farid
20.08.2018
08:00:28
koqo ect notepad++ na komputer?
ili sublime text 3?

guga
20.08.2018
08:05:03
tol’ko vim, a chto ti hotel?

Vladimir
20.08.2018
08:05:30

Mikhail
20.08.2018
08:08:16
еще раз
вот схема
источник --- рандомный порт --- прокси --- тот-же рандомный порт --- бэкенд

Vladimir
20.08.2018
08:08:38

Mikhail
20.08.2018
08:09:07
надо подробнее посмотреть, какая инфа есть в пакете

Vladimir
20.08.2018
08:12:47
надо подробнее посмотреть, какая инфа есть в пакете
Адрес источника (хост+порт), адрес назначения (хост прокси + порт)
Можно поймать пакет, вытащить из него UDP-дейтаграмму, расшифровать, и отправить в этот же интерфейс с исходным адресом назначения. Главное, не накосячить с маршрутами.
Со стороны бэкенда будет выглядеть так, будто ему прилетел расшифрованный пакет с исходного адреса.

Slava
20.08.2018
10:22:29
кто знает как лечить ситуацию, когда при клике на зелёную кнопуку play возле main метода IDEA мне говорит "Could not find or load main class org.my.package.MyClass" ?
Build в Before Launch есть, compile типа запускается
версия IDEA - 2018.1

Google

Slava
20.08.2018
10:23:23
то же самое относится к Recompile class - ничего нифига не компилится, хотя где-то там внизу окна IDEA какой-то процесс билда проскакивает

guga
20.08.2018
10:23:45
а в run опциях все норм?

Slava
20.08.2018
10:23:58
output смотрит в target/class и target/test-classes
на 2017. x такого не замечал

Роман
20.08.2018
10:29:42
вот так лечится

Slava
20.08.2018
10:30:07
выше писал) оно там есть
короче, отбой, отмена - где-то в настройках проекта жопа творится

Дмитрий
20.08.2018
10:30:23
Скажите, а есть ли чат, посвященный базам данных Oracle?

Роман
20.08.2018
10:30:39

Slava
20.08.2018
10:30:42
на другом проекте попробовал то же самое сделать - всё ОК запускается

Роман
20.08.2018
10:31:09
Run maven goal || Run Gradle Task

Slava
20.08.2018
10:31:10
да да, так всё работает