
Rushan
21.08.2018
20:03:24
кинь мне, я перешлю

Maxim
21.08.2018
22:34:03
Народ, как в Java нормально реализовать Null Object для Enum? Если я просто добавляю новую константу в Enum, скажем NONE, то она просвечивает через метод values(), чего очень бы не хотелось, а переопределить его нельзя.

Ivan
21.08.2018
22:38:15

baylrock
21.08.2018
22:44:12
Ну удали из values

Google

baylrock
21.08.2018
22:44:34
Правда потом тебя уволят

Maxim
21.08.2018
22:44:34
Ну вот есть у тебя некий список, хранящийся в Enum. Скажем ты не хочешь бросать исключение из valueOf если кто-то попытается получить элемент этого списка задав неправильное имя. Чтобы не возвращать null можно вернуть некий Null Object, который придется определить в этом же Enum. Но это значит что values всегда будет возвращать его вместе с корректными значениями.

Baruch
21.08.2018
22:44:39
народ, в четверг эфир! Готовьтесь, будем общаться с чатиком! https://www.facebook.com/events/1831612610287639/

Maxim
21.08.2018
22:45:06

baylrock
21.08.2018
22:46:12
values() [ 0]=null
Вобще сделав свой гет бай ид и там бросай что хочешь
values() [ 0]=null
Это шутка. Но если хочешь так то рефлекс или храни урезаную копию и опять же свой геттер

Maxim
21.08.2018
22:54:41

baylrock
21.08.2018
22:55:18
Ну если ты для себя пишешь то норм
values() делает эрей копи каждый раз
И что бы достичь некого воображаемого перфа после инита делают копию 1 раз и к ней доступ через геттер
Так что небоись

Maxim
21.08.2018
22:58:49
Вот это тоже шутка сейчас была? Я такого никогда не видел. Какой смысл делать array copy, если Enum в Java иммутабелен до мозга кости?

Google

baylrock
21.08.2018
22:59:09
Массивы не имутабельны
Сам инстанс да недоступен
Но ячейки изменяйте как хочешь
Так что бы защитить массив его копируют
И при енумах в овер 999 значений действительно стоит копировать и хранить свою копию

Maxim
21.08.2018
23:01:00

baylrock
21.08.2018
23:01:02
Если часто обращаешься к массиву само собой
Ну это обычный финал инстанс
Его неперезаписать
Но поля можно редачить

Maxim
21.08.2018
23:02:14
Хреново, конечно, что values() так просвечивает. И ничего с этим не поделаешь.

baylrock
21.08.2018
23:02:35
Можешь делегировать доступ
Не давай енум в внешнее по льзование

Maxim
21.08.2018
23:03:31

baylrock
21.08.2018
23:04:04
Мелочь, привыкнешь
Чёт не впервой это слышу про енум

Evgeniy
22.08.2018
03:34:20

Akim
22.08.2018
04:35:49

Artjom
22.08.2018
05:16:43
а зачем вообще нулл обжект для енума ?

Maxim
22.08.2018
06:12:47

Google

Maxim
22.08.2018
06:14:06

Akim
22.08.2018
06:15:40

Artjom
22.08.2018
06:15:47
По дефалту возвращай какой нибудь None
Не вижу особого смысла запариватся на нулл обьекте енуме

Maxim
22.08.2018
06:17:26
По дефалту возвращай какой нибудь None
Ну теперь то, благодаря @baylrock я понимаю, что это, пожалуй, лучший выход. Учитывая накладные расходы на вызов values() ним вообще лучше не пользоваться. Я не был в курсе такого поведения. Оно, конечно, на поверхности, но просто никогда не задумывался и не сталкивался ни на практике ни в литературе.

Artjom
22.08.2018
06:17:50
Можно скалу или котлин заиспользовать

Maxim
22.08.2018
06:18:22
Ни того процитировал, ну да ладно.

ЕВГЕНИЙ
22.08.2018
06:18:38

Maxim
22.08.2018
06:36:17
Нашел на Quora интересный ответ с оберткой поверх Enum для такого случая: http://qr.ae/TUNhSc
Выглядит годно, но на практике как-то уж слишком много сущностей.

Роман
22.08.2018
06:39:45
вообще как по мне годно создать empty объекты, для этого даже в Guava есть специальный метод создающий список который не принимает null

Митко Соловец?
22.08.2018
06:49:50

Maxim
22.08.2018
06:59:35

Роман
22.08.2018
07:07:55
а переопределить его разве нельзя?

Vladimir
22.08.2018
07:09:02
он статический

Роман
22.08.2018
07:10:40
а да, точно

Митко Соловец?
22.08.2018
07:14:05

Igor
22.08.2018
07:49:26
Какой сейчас есть бесплатный свособ собрать нативную сборку java приложения?
- Ексельсеор платный
- graal только под линукс (надо макос)
- robovm не может собрать java8.

Andrey
22.08.2018
07:51:35
Или просто директория с ярлыком?

Admin
ERROR: S client not available

Google

Igor
22.08.2018
07:51:53
Да бинарь, что бы одним файлом x64 распространять

Denis
22.08.2018
08:15:10
А собирается полностью в автономный пакет? Со всем своим барахлом? Т.е потом ничего дополнительно ставить не надо?

Константин
22.08.2018
09:32:35
Ребят, кто-то работал с 2х стороним SSL? Есть сертификат сервера, клиентский, добавлял их в cacerts и грузил только два этих сертификата в коде, и все-равно получаю `java.security.cert.CertificateException: No subject alternative names present` в чем может быть проблема?

Евгений
22.08.2018
09:47:54

Vladimir
22.08.2018
09:48:35

Константин
22.08.2018
09:48:48

Vladimir
22.08.2018
09:49:36
Да
Тогда, видимо, в серверном сертификате не указано имя сервера в поле subjectAltName, а оно должно там быть

Константин
22.08.2018
09:53:15

Vladimir
22.08.2018
09:56:11
а если его там нет, обойти это можно?
Ну это будет сложнее, чем просто закинуть сертификат куда-то.
Надо подставлять свою реализацию проверки сервера, а как это делать, зависит от того, как устанавливается соединение.

Павел
22.08.2018
11:49:55
Народ есть hz.jar в папке /opt и нужно его запустить. В класспас джава 1.7 нужна 1.8. Джава 1.8 скачана и лежит в соседней папке. Как запустить джарку с укащанием конкретной версии джава? Помогите)
Я не линуксоид
Поэтому хз

Igor
22.08.2018
11:52:22
так и пишеш
/opt/java8/bin/java -jar /opt/hz.jar

Павел
22.08.2018
11:54:33

Bogdan
22.08.2018
13:17:52

Евгений
22.08.2018
13:50:32
>sh это bat

Bogdan
22.08.2018
13:51:15

Aleksandr
22.08.2018
14:20:02
Привет всем. Что можно почитать/посмотреть про спринг, чтобы потихоньку въезжать, что это такое?

Aleksander
22.08.2018
14:20:56

Евгений
22.08.2018
14:21:22

Google

Денис
22.08.2018
14:22:15
Гайды приятные, но не для того

Евгений
22.08.2018
14:22:53

Денис
22.08.2018
14:23:02
Какой-то хай-левел обзор того, что из себя представляет спринг, вполне можно обеспечить и без глубинного курения манов

Евгений
22.08.2018
14:24:05
что там обозревать? спринг это фреймворк для построения приложений

Митко Соловец?
22.08.2018
14:24:06
читайте референсы с первой главы
все