
Oleg
05.07.2018
08:54:49
Что случилось с тобой?

Ярослав
05.07.2018
10:22:27
ужас я думал эпоха украшательств закончился году так в 2003ьем

Анатолий
05.07.2018
10:23:11

Ярослав
05.07.2018
10:23:38
а это разве не так?

Google

Dmitry
05.07.2018
10:36:24
private void onButtonPressed(String name) {
listeners.forEach(l -> l.onButtonPressed(name));
}
private void onLeverPulled(String name, int angle) {
listeners.forEach(l -> l.onLeverPulled(name, angle));
}
благодарю.
получается, с помощью лямбды цикл стал лаконичней, но он всё равно будет в каждом методе
наверное, чтобы красивее прокидывать параметры их можно упаковать в классы
ButtonPressedEvent { String Name }
LeverPulledEvent { String Name; int angle }
наследуемые от CommonEvent и уже его рассылать
хм. а можно ли сделать метод вроде
void notifyListeners(interface.onLeverPulled, LeverPulledEvent) {}
который принимает какую-то ссылку на метод который нужно дёрнуть у всех листенеров и списко параметров?
(ссылка не текстом, как как-то более правильно, чтобы не в рантайме увидеть, что ошибся в названии, например)

Denis
05.07.2018
10:57:28

Grigory
05.07.2018
10:58:51

Митко Соловец?
05.07.2018
11:00:08

guga
05.07.2018
11:00:55
много олегов не бывает

Dmitry
05.07.2018
13:26:46
а вообще можно передать в метод «ссылку» на метод, объявленный в интерфейсе, чтобы дёрнуть его в слушателе, реализующем этот интерфейс?
(и чтобы передаваемый метод не лежал в строке)

Александр
05.07.2018
13:27:12
в джаве ссылка на метод это метод хендл :)

Dmitry
05.07.2018
13:31:09
и мне же не ссылка на метод нужна (поэтому и в кавычках). я хочу передавать метод из объявления интерфейса, а его вызвать нельзя
ну может «как-то» передать «что-то» на метод, чтобы дёрнуть оный в реализациях?
или так нельзя?
UPD: может я вообще странного хочу

Александр
05.07.2018
13:31:52
ну так если ты передашь обьект метод хендла который является ссылкой на нужный тебе метод
ты через него этот метод и вызовешь

Dmitry
05.07.2018
13:35:24
у меня есть массив со слушателями, которые реализуют интерфейс
я хочу сделать метод_B, который будет получать на вход «что-то» похожее на сыылку на метод_A в интерфейсе и пробегать по всем слушателям, вызывая этот метод_A в каждом

Александр
05.07.2018
13:40:26
лучше напиши псевдокод

elefus
05.07.2018
13:41:40
interface Listener {
int methodA();
}
List<Listener> list = null;
void methodB(Consumer<? super Listener> action) {
list.forEach(action);
}
void run() {
methodB(Listener::methodA);
}

Google

Dmitry
05.07.2018
13:42:43

elefus
05.07.2018
13:43:14
данная реализация сработает только для методов без параметров
в приведенном же скрине, насколько я понимаю, надо прокинуть две стринги в качестве параметров

Dmitry
05.07.2018
13:44:04
так он на нестатический контекст ругается, а не на параметры

elefus
05.07.2018
13:44:27
рекомендую разобраться с лямбдами и ссылками на методы в джаве

Евгений
05.07.2018
13:49:18
на самом деле там в другом ошибка
а идея постоянно на "нестатический контекст" ругается
https://youtrack.jetbrains.com/issues/IDEA?q=Non-static%20method%20cannot%20be%20referenced%20from%20static%20context

Koba
05.07.2018
13:54:00
В лямбда выражения в Java можно делать тоже самое, что и в LinQ ?

elefus
05.07.2018
13:56:55
interface Listener {
int methodA();
int methodB(String someValue);
int methodC(String someValue, Integer someValue2);
}
@FunctionalInterface
interface TriConsumer<A, B> {
void invoke(Listener listener, A param1, B param2);
}
List<Listener> list = null;
<A, B> void call(TriConsumer<? super A, ? super B> action, A param1, B param2) {
call(listener -> action.invoke(listener, param1, param2));
}
<A> void call(BiConsumer<? super Listener, ? super A> action, A param1) {
call(listener -> action.accept(listener, param1));
}
void call(Consumer<? super Listener> action) {
list.forEach(action);
}
public void main(String[] args) {
call(Listener::methodA);
call(Listener::methodB, "value");
call(Listener::methodC, "value", 1);
}
велосипед, просто чтобы продемонстрировать возможный вариант
при вызове call передаешь ссылку на требуемый метод и параметры для вызова


Dmitry
05.07.2018
13:59:32
благодарю
я пытался понять где у меня траблы со статическим контекстом, а при компиляции действительно выдаёт нормальные ошибки.
и не знал про ? super

Alexander
05.07.2018
14:18:52
В джавастарт отправит кто-нибудь, не?

Pavel ?
05.07.2018
14:34:48

ARDEV
05.07.2018
16:09:32
ЯвуФХ возможно запустить на консольном линухе если там нету запуска стейжа?

Quantum Harmonizer
05.07.2018
16:15:39

ARDEV
05.07.2018
16:16:09
написал и только сейчас понял что на серваке не запущу(
?♂️?♂️?♂️

Google

Владимир
05.07.2018
16:24:24
Всем привет

Денис
05.07.2018
16:59:44
Всем привет
Задам свой любимый вопрос - зачем нужно публично здороваться, заходя в чатик на 3 тысячи человек? :)

Владимир
05.07.2018
17:00:12
Воспитание)

Sergey
05.07.2018
17:03:00
Воспитание в интернете не работает

Денис
05.07.2018
17:03:14
Воспитание)
Я просто представляю аналогичную ситуацию на крупном (реально крупном, не 10-20 лиц)) публичном/мероприятии, и как-то не вяжется, если честно. :)

Владислав
05.07.2018
20:35:57
кто-нибудь знает, как на асинхронном сервлете самому синициировать onError()?

Sergey
05.07.2018
20:55:09
throw new Exception()

Владислав
05.07.2018
21:00:41
странно, в гайдах тоже так показывают
но у меня onError не вызывается почему-то
странно, буду копать

Денди
06.07.2018
05:08:37
Ребята, тут есть андройд разработчики?

Admin
ERROR: S client not available

Денди
06.07.2018
05:09:03
Интересует приобретение готовой программы или игры находящейся в маркете

Alexander
06.07.2018
05:10:13
https://t.me/android_ru

Денди
06.07.2018
05:11:47
Спасибо

R
06.07.2018
05:31:50
А по котлину чат есть где-то?

Valentina
06.07.2018
05:38:38

R
06.07.2018
05:38:52
Спасибо.

Yan
06.07.2018
06:06:43
Утро доброе парни, кто какие юзал api gateway решения?
кроме зулы

Денис
06.07.2018
06:48:28
http://mail.openjdk.java.net/pipermail/amber-dev/2018-July/003254.html

Google

Денис
06.07.2018
06:49:08
В Java 12 хотят завезти многострочные строковые литералы

Dim
06.07.2018
06:49:25
лучше бы интерполяцию сделали
не через String.format

Владислав
06.07.2018
07:01:38
Владислав Султаняров:
кто-нибудь знает, как на асинхронном сервлете самому синициировать onError()?
Извините за спам, но очень нужно разобраться

Rikland
06.07.2018
07:02:36

Владислав
06.07.2018
07:04:00
Кинуть исключение?
Вот я запускаю таск через асинк контекст
Там кидаю illegalstate
Он выбрасывается, но листенер на контексте его не обрабатывает , я не понимаю, почему
В логах исключение появляется
Будто обработка где-то в другом месте проходит и исключение не доходит до листенера

Tolegen
06.07.2018
07:22:31
Меня иногда удивляют такие вопросы. Неужели в команде отсутствуют опытные люди? Не понимаю, как можно давать ответственность за проект без опытного лида/архитектора.

Slava
06.07.2018
07:24:42

Artjom
06.07.2018
08:02:58
Стартап нанимающий только студентов это receipt for success

Slava
06.07.2018
08:05:43
мы же не знаем, что Владислав нанятый в стартап сотрудник. может он сам и есть тот самый основатель стартапа?

Tolegen
06.07.2018
08:06:40
Ну удачи в очередном разбазаривании чужих денег.