@jvmchat

Страница 2189 из 2890
Alexander
23.01.2018
16:43:49
это все из-за легаси

Sergey
23.01.2018
16:44:03
Хм.... скока лет кожу, а на такое первый раз натыкаюсь. Вот скажите - че: джава всерьез генерит класс для свич-стейтментов?

Хм.... скока лет кожу, а на такое первый раз натыкаюсь. Вот скажите - че: джава всерьез генерит класс для свич-стейтментов?
public class MsgGameStatus implements Message { private final GameStatus status; private final Output output; public MsgGameStatus(final GameStatus status, final Output output) { this.status = status; this.output = output; } @Override public final void printOut() { switch (status.value()) { case MISTAKES_LIMIT_REACHED: output.printOut("You lost!\n"); break; case WORD_GUESSED: output.printOut("You win!\n"); default: //Do nothing } } }

public class MsgGameStatus implements Message { private final GameStatus status; private final Output output; public MsgGameStatus(final GameStatus status, final Output output) { this.status = status; this.output = output; } @Override public final void printOut() { switch (status.value()) { case MISTAKES_LIMIT_REACHED: output.printOut("You lost!\n"); break; case WORD_GUESSED: output.printOut("You win!\n"); default: //Do nothing } } }
После компиляции обнаружил такой сюрприз: [skapral@xxx hangman]$ javap -cp target/classes hangman.message.MsgGameStatus\$1 Compiled from "MsgGameStatus.java" class hangman.message.MsgGameStatus$1 { static final int[] $SwitchMap$hangman$gamestatus$GameStatus$Value; static {}; }

Google
Victor
23.01.2018
16:47:27
Для switch нет. Для enum да. Для switch, кстати, два варианта байткода есть. https://habrahabr.ru/post/174065/

Sergey
23.01.2018
16:48:21
То что два опкода, это да. Знаю. А вот то что он целый анонимный класс мне сварганит... не ожидал)

Alexander
23.01.2018
16:52:39
Игрульки пишешь?

Sergey
23.01.2018
16:53:05
Игрульки пишешь?
Это эксперимент

Рынок игры Hangman малясь перенасыщен нынче)

Alex
23.01.2018
18:17:07
Добрый вечер, подскажите какими символами заменяется пробел в html

Если быть точным я request.setAttribute("ford mustang", object) но теперь когда я вытаскиваю на jsp то мне подчеркивает среда типо есть пробел, как его заменить на jsp?

Alex
23.01.2018
18:22:41
настолько я знаю атрибуты не могут быть с пробелами
я просто с базы вытягиваю а там метод который возвращает с пробелом строку

это что мне в безе перебивать значение?

что бы без пробела было?

request.setAttribute(car.getModel - этот метод возвращает строку с пробелом и среда не ругается, object)

Google
Alex
23.01.2018
18:28:58
Bogdan
23.01.2018
18:29:43
красненькое
можно текст ошибки

Alex
23.01.2018
20:39:13
Спасибо, я находил это, но как я понял в jsp переменные не могут быть с пробелами, ну ка и везде!

Alexandr
24.01.2018
07:20:11
Ребят, помогите разобраться с регуляркой. (?:(-?\d+)\s){4}(-?\d+) -11 433 -1 6 -7 Хочу забирать числа из групп, но при такой регулярке у меня забирает предпоследний и последний элемент.

Daniel
24.01.2018
07:21:33
?: эта группа будет игнорироваться

Alexandr
24.01.2018
07:22:12
да, что бы не выдёргивала мне числа с пробелом.

Daniel
24.01.2018
07:22:25
а все, вложенная есть но это интересный кейс, хз как себя разные движки поведут

Daniel
24.01.2018
07:23:04
попробуй накопипастить вручную, может дело в этом

BullyBoo
24.01.2018
07:23:26
А, ой, не заметил

Alexandr
24.01.2018
07:23:35
-11 433 -1 6 -7 проверяю через http://myregexp.com/ #0 -11 433 -1 6 -7 #1 6 #2 -7

BullyBoo
24.01.2018
07:24:40
А нельзя вот так? -?[0-9]+

Alexandr
24.01.2018
07:24:41
попробуй накопипастить вручную, может дело в этом
накопипастить , всё будет в норме, но если мне строка придёт элементов под 100, то такую регулярку собрать будет затратно

\d == [0-9]

BullyBoo
24.01.2018
07:25:19
\d == [0-9]
Нифига))

Я тоже раньше думал, что это так

Daniel
24.01.2018
07:25:40
ну регулярка в принципе затратно, имхо тебе сплит по \s подойдет

BullyBoo
24.01.2018
07:26:03
Оказалось, что \d еще и персидские числа в себя включает

Google
Daniel
24.01.2018
07:27:06
разбить строку на подстроки

str.split("\s").map(_,toInt) (scala style, но на джавовых стримах наверное тоже можно)

Alexandr
24.01.2018
07:28:13
попробую. Но разве это не будет затратнее регулярки ?

Daniel
24.01.2018
07:28:20
но это тривиальный кейс, который еще валидировать надо

не больше точно

если у тебя \s фиксированный символ, то можно сразу его использовать и это будет самый быстрый вариант

сплит использует регулярки сам, но если один символ, то там более оптимальный код

sup
24.01.2018
08:18:20
ребят что лучше jboss или glassfish?

Cargeh
24.01.2018
08:18:35
sup
24.01.2018
08:19:00
туда же сервак нужен вот и выбираю

или там встроенный?

Cargeh
24.01.2018
08:21:12
ребят что лучше jboss или glassfish?
а тебе точно прям полноценный EE сервак нужен? Почему не взять контейнер типа Томката, например?

sup
24.01.2018
08:22:00
томкат я понимаю только в сервлеты может?

Alexander
24.01.2018
08:22:17
а что еще надо ?

Cargeh
24.01.2018
08:22:38
томкат я понимаю только в сервлеты может?
если у тебя какой-нибудь spring mvc, который поверх сервлетов, то тебе больше и не надо

Alexander
24.01.2018
08:22:47
я в том смысле, ну берете либу и кладете к себе в CP

Grigory
24.01.2018
08:22:48
сервлеты самое лучшее ничего вообше лучше нету

Admin
ERROR: S client not available

Nikita
24.01.2018
08:26:52
ребят что лучше jboss или glassfish?
Вам тонко намекают, что задачу надо описываать подробнее. К.О. )

Google
Егогор
24.01.2018
08:27:02
@javastart - чат для начинающих и не только. Присоединяйтесь!
Доброго дня! Меня зовут я Егор, и я рекрутер в it- сфере. У меня в работе есть интересная позиция для Android-разработчиков. Буду рад рассказать подробнее, если кому интересно)

sup
24.01.2018
08:29:03
я понял, просто я учу java ee на ютубчике и там ставят сервачок и вот думаю, какой лучше ставить?

Valery
24.01.2018
08:30:08
народ, можно ли методы оставлять без модификатора доступа? это не противоречит конвенции ?

Vitalii
24.01.2018
08:30:31
народ, можно ли методы оставлять без модификатора доступа? это не противоречит конвенции ?
Они будут package private. https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html Вопрос: Можно? Ответ: Можно.

Cargeh
24.01.2018
08:31:53
народ, можно ли методы оставлять без модификатора доступа? это не противоречит конвенции ?
в любой непонятной ситуации максимально сужай область видимости. Пусть будет private пока не понадобится иначе

Vitalii
24.01.2018
08:32:37
в любой непонятной ситуации максимально сужай область видимости. Пусть будет private пока не понадобится иначе
Кроме случаев, когда у тебя inner класс, к полям которого ты получаешь доступ из outer класса. Там лучше всё-таки package private, чтобы не создавались под капотом лишние геттеры/сеттеры.

Nikita
24.01.2018
08:34:51
я понял, просто я учу java ee на ютубчике и там ставят сервачок и вот думаю, какой лучше ставить?
Тогда Wildfly (как уже сказали) или TomEE - для этого вообще плагины есть, сэтапить ничего не надо

Cargeh
24.01.2018
08:35:35
"чтобы не создавались под капотом лишние геттеры/сеттеры" - это JVM/javac создает?
Если да, то сомнительная оптимизация, которая вызовет вопрос "почему так?", при этом не принеся заметного улучшения, имхо. Мне кажется с точки зрения чистоты кода это не очень

Vitalii
24.01.2018
09:03:26
"чтобы не создавались под капотом лишние геттеры/сеттеры" - это JVM/javac создает?
https://docs.oracle.com/javase/tutorial/java/generics/bridgeMethods.html#bridgeMethods Наличие/отсутствие модификатора private поломает чистоту кода? Странное утверждение.

Алсо, кто там любитель этих вскодов и прочего X на электронах: https://www.securitylab.ru/news/490994.php

Cargeh
24.01.2018
09:07:19
Vitalii
24.01.2018
09:07:59
а причем тут inner / outer классы? По-моему они к bridge methods вообще никакого отношения не имеют
Имеют. Inner-класс — это вообще высокоуровневое понятие, JVM о них ничего не знает.

Evgeny
24.01.2018
09:08:04
забавно, как раз листаю effective java про это. Item 15, Minimize the accessibility of classes and members Item 16, In public classes, use accessor methods, not public fields в общем-то если не писать библиотеки, думаю это опционально, но доводы по использованию геттеров/сеттеров там написаны, контрдовод, я так понимаю, только один - лень писать/генерить

Cargeh
24.01.2018
09:11:42
Имеют. Inner-класс — это вообще высокоуровневое понятие, JVM о них ничего не знает.
Мы точно об одних и тех же inner классах говорим? Те что nested?

Vitalii
24.01.2018
09:16:36
Мы точно об одних и тех же inner классах говорим? Те что nested?
Да. Ты попробуй скомпилировать класс с вложенным классом внутри, посмотри какие файлы на выходе ты получишь.

Hip
24.01.2018
09:18:06
nested классы это просто визуальный трюк

Cargeh
24.01.2018
09:19:33
Да. Ты попробуй скомпилировать класс с вложенным классом внутри, посмотри какие файлы на выходе ты получишь.
То что он компилит в Class$Inner - это понятно. Я правда не могу понять, причем тут bridge методы и геттеры/сеттеры? :))

Google
Vitalii
24.01.2018
09:21:20
То что он компилит в Class$Inner - это понятно. Я правда не могу понять, причем тут bridge методы и геттеры/сеттеры? :))
При том, что для случаев с иннер-классами также генерятся синтетические методы.

Cargeh
24.01.2018
09:22:26
При том, что для случаев с иннер-классами также генерятся синтетические методы.
public class com.javac.Nested$Inner { static int access$000(com.javac.Nested$Inner); Code: 0: aload_0 1: getfield #1 // Field x:I 4: ireturn }

Я так понимаю это

Hip
24.01.2018
09:22:47
это че за язык

jvm?

Cargeh
24.01.2018
09:22:54

Страница 2189 из 2890