
Диоген
12.10.2018
11:52:18

Павел
12.10.2018
11:52:26
Причем нужно для некоторых бинов несколько типов. Там уже массив

Диоген
12.10.2018
11:52:28
А то вдруг забудешь аннотацию поставить
И хули тогда?

Google

Павел
12.10.2018
11:53:41
Поймаешь ошибку. Не напишешь @RestController над контроллером тоже поймаешь
Странная логика)

Диоген
12.10.2018
11:53:55
В рантайме получишь ошибку
Если ты не заимплементишь метод интерфейса, у тебя код не скомпилится

Павел
12.10.2018
11:55:10
Ну это известный подход старых версий спринга или ejb когда бины имплементили интерфейсы переопределяли доп методы

Диоген
12.10.2018
11:56:14

Павел
12.10.2018
11:56:50

Диоген
12.10.2018
11:56:54
Это новый подход спринга, я так понимаю. Запихать всю инфу в метаданные и ловить ошибки в рантайме?

Павел
12.10.2018
11:56:55
Аля InitializingBean
Который никто не использует уже
И таких достаточно примеров когда раньше имплементили интерфейсы потом перешли на аннотации

Диоген
12.10.2018
11:57:51
Не совсем аля

Alexandr
12.10.2018
11:57:59

Google

Диоген
12.10.2018
11:57:59
Ты чет попутал

Alexandr
12.10.2018
11:59:35

Диоген
12.10.2018
12:01:06
Вобщем рано обрадовался) в таком подходе тоже фигня получаеться так как каждый бин реализует метод интерфейса getType() и дальше этот бойлерплей висит в каждом бине мертвым грузом. ((((
Я щас просто пытаюсь понять, что мне может дать в теории использование аннотаций вместо интерфейсов в моей бузинес логике
Конкретно в таком контексте

Alexandr
12.10.2018
12:03:39
если ты просто получаешь список бинов по типу, то интерфейс норм

Beholder
12.10.2018
13:29:50
кто-нибудь пользуется новым http-клиентом в Идее? у меня там неправильно отображается кодировка в ответном xml

Aleksey
12.10.2018
13:39:15

Dmitrii
12.10.2018
13:45:26
А вообще, ты же не настоящий :)

Митко Соловец?
12.10.2018
13:46:08

Yaroslav
12.10.2018
13:46:41
Refresh File status делал ?

Aleksey
12.10.2018
13:46:57

Yaroslav
12.10.2018
13:47:37
не
VCS -> Refresh File status
не
можно еще просто кэш в idea сбросить , это в 90% случаях помогает

Aleksey
12.10.2018
13:49:36
у меня есть подозрения, что это из за того что другой программист закоммитил из винды через git bash

Google

Sergey
12.10.2018
14:19:58
Всем привет. Немного необычный вопрос задам, не спрашивайте только "зачем оно мне", пусть будет "просто из интереса".
Итак: Не подскажет ли кто, каков будет импакт на перфоманс и потребление ресурсов от класса, имплементирующего, скажем, 100 (1000, 10000) интерфейсов, по сравнению с классом, имплементирующим один?
Лично мне на ум чето не приходит ничего кроме (возможно) более обильного класслодинга.

Vladimir
12.10.2018
14:22:40
Всем привет. Немного необычный вопрос задам, не спрашивайте только "зачем оно мне", пусть будет "просто из интереса".
Итак: Не подскажет ли кто, каков будет импакт на перфоманс и потребление ресурсов от класса, имплементирующего, скажем, 100 (1000, 10000) интерфейсов, по сравнению с классом, имплементирующим один?
Лично мне на ум чето не приходит ничего кроме (возможно) более обильного класслодинга.
Мне кажется, компилятору (в том числе JIT) будет плохо. Не фатально, но заметно.


Aleksey
12.10.2018
14:24:35
Всем привет. Немного необычный вопрос задам, не спрашивайте только "зачем оно мне", пусть будет "просто из интереса".
Итак: Не подскажет ли кто, каков будет импакт на перфоманс и потребление ресурсов от класса, имплементирующего, скажем, 100 (1000, 10000) интерфейсов, по сравнению с классом, имплементирующим один?
Лично мне на ум чето не приходит ничего кроме (возможно) более обильного класслодинга.
С точки зрения метаданных -- разница будет в том смысле, что метаданные (классы) для реализованных интерфейсов тоже надо будет куда-то загрузить. А вот сделать invokeinterface от инстанса с 10К интерфейсами -- это будет интересный цирк, учитывая, что в Hotspot он без оптимизаций будет стоить O(n) от числа реализованных интерфейсов.

sherzod
12.10.2018
14:25:27

Aleksey
12.10.2018
14:26:52
Но не понятно, с чем сравнивать кейс: если не 10К интерфейсов, то что тогда? Руками диспатч делать? Map в Method, и рефлекшн? :)

Sergey
12.10.2018
14:27:11
Точняк. Как то про виртуальный вызов я и не вспомнил.
А если предположить что интерфейсы - маркеры?

Aleksey
12.10.2018
14:30:07
Если об них не вызывать ничего, то легче. А если маркеры, то instanceof будет их линейно искать всё равно, и только несколько частых хитов кэшировать, емнип.

Sergey
12.10.2018
14:31:34
Ясно. Спасибо.

Снобяъ
12.10.2018
16:05:42
Часто в работе с yaml сталкиваетесь?

Alexander
12.10.2018
16:06:35
часто

Litesav
12.10.2018
16:29:30
Мб кто сталкивался с аналогичным алгоритмом. Есть строка рода "5+7/9-(6/40)", как из этих исходных данных получить ответ выражения с учётом порядка действий. P.s пытался сам написать алгоритм, разбивая числа на пары и решая каждую пару чисел в отдельности, но возникают проблемы.

Litesav
12.10.2018
16:29:31
У меня получается слишком объёмный алгоритм

Валерий
12.10.2018
16:30:43
Тут на самом деле только 2 нормальных варианта
- парсер
- преобразование в обратную польскую
Они по сути идентичны

Danila
12.10.2018
16:34:41
Можно ещё в js движке eval сделать. Быстро и мало кода писать.

Ruslan
12.10.2018
16:35:11

Vladimir
12.10.2018
16:36:36
Кто-нибудь собирал tdlib с jni?
Все зависимости установил, версии проверил, путь к OpenSSL указал, но вылетает следующее:
Could not find a package configuration file provided by "Td" with any of
the following names:
TdConfig.cmake
td-config.cmake
OS X Sierra 10.13.2
Или же кто-нибудь знает аналогичные варианты взаимодействовать с апи телеграма (не боты!) из джавы?
Вот эта библиотека: https://github.com/rubenlagus/TelegramApi - заброшена и поломана

Ruslan
12.10.2018
16:37:52

Google

Ignat
12.10.2018
16:38:22

Vladimir
12.10.2018
16:39:43

Ruslan
12.10.2018
16:41:10

Vladimir
12.10.2018
16:42:38
Да, а именно апи телеграма, которое через MTProto, никто не занимается. На питоне и ноде есть либы, на джаве - нет

Cargeh
12.10.2018
16:43:27
Но мне он показался легче, чем то что ты скинул
Tdlib я тоже завести не смог, и найти того, кто поможет (или кто запускал) - тоже. Крайне странная штука

Quantum Harmonizer
12.10.2018
16:44:50

Admin
ERROR: S client not available

Yury
12.10.2018
16:45:54
В этой либе

Vladimir
12.10.2018
16:46:05

Ruslan
12.10.2018
16:46:07
Что, даже example не работает? https://github.com/tdlib/td/tree/master/example/java

Vladimir
12.10.2018
16:47:01

Yury
12.10.2018
16:48:10
https://github.com/tdlib/td

Vladimir
12.10.2018
16:48:52
Да, я тоже. Там уже все есть. Собрать и запустить остается
В папке examples
Вообще, есть уже готовый проект с собранными либами - https://github.com/ErnyTech/JTDLib, правда, только для вин и линукса

Yury
12.10.2018
16:51:45
В папке examples
А разве там все есть? Я подумал, что для примера только несколько методов взаимодействия описано

Google

Vladimir
12.10.2018
16:56:20

Yury
12.10.2018
17:00:44

Денис
12.10.2018
17:01:06
И да, алгоритм получится не самый примитивный

Ruslan
12.10.2018
17:01:51
Собрал, запустил. Все работает

Vladimir
12.10.2018
17:02:09

Ruslan
12.10.2018
17:02:24
arch linux

Vladimir
12.10.2018
17:04:43
И Java-пример запускается и работает?

Nikolay
12.10.2018
17:06:25

Диоген
12.10.2018
17:09:02
Спринг, если мне память не изменяет, точно умеет в описанные вами арифметические операции

Денис
12.10.2018
17:10:41

Диоген
12.10.2018
17:12:46
Spring Expression Language Guide | Baeldung
https://www.baeldung.com/spring-expression-language
Да вот же, всё уже реализовано
Ну можно любой другой взять, если спринг не нравится
Можно конечно и самому заимплементить, но зачем

Nikolay
12.10.2018
17:22:58
Чтобы разобраться?

Диоген
12.10.2018
17:26:11
Чтобы разобраться?
Да, хороший повод.
Но тогда вам потом придётся реализовать свой di, свой http сервер, свою сериализации объектов, свою orm в конце концов