@jvmchat

Страница 519 из 2890
Bogdan
22.08.2016
09:46:02
получается, если я передаю указатель на объект в c++, то это не передача по ссылке?

ведь в функции будет копия указателя

guga
22.08.2016
09:47:20
делать myObj.equals(null) это быдлокод?
Ох ты ж что творится. Ты упал по NPE

Митко Соловец?
22.08.2016
09:47:34
в с++ ты при = копируешь объект полностью

Google
Митко Соловец?
22.08.2016
09:47:50
а в джаве у тебя две переменные на одну ссылку указывают

guga
22.08.2016
09:48:00
для примитивов копируется значение, для объектов - их ссылки, но при этом изменение ссылки внутри функции не повлияет на внешнюю ссылку
А ты скажи, что выведет такой код. public class MainJ { public static void main(String[] args) { int[] a = {1, 2}; System.out.println(Arrays.toString(links(a))); System.out.println(Arrays.toString(a)); } private static int[] links(int[] b) { b[0] = 2; return b; } }

Митко Соловец?
22.08.2016
09:48:28
и если не копировать ссылку, что есть значение переменной, тогда внутреннее присвоение повлияет на внешнюю ссылку

guga
22.08.2016
09:49:06
Верно, но в то же время ты говоришь >объектов - их ссылки, но при этом изменение ссылки внутри функции не повлияет на внешнюю ссылку

Митко Соловец?
22.08.2016
09:49:38
да

я имею в виду вот это

A a = ... A b = a; function(A var) { var.set(..); var = c} function(b);

вот если мы var = сделаем, a на c указывать не будет

James Tiberius Kirk ?
22.08.2016
09:51:30
Ох ты ж что творится. Ты упал по NPE
не увал, прост не проснулся еще после выхов

Митко Соловец?
22.08.2016
09:51:38
но изменение var.set() отобразятся на a

а если бы не было копирование значения переменной - в данном случае значение - это ссылка, то в а было бы c

guga
22.08.2016
09:54:58
Тогда ты своей репликой только запутал, не знаю как всех, но меня так точно. Я уж думал за пол года в java что-то кардинально поменялось.

Митко Соловец?
22.08.2016
09:57:30
не знаю, что там не так с моей репликой, я просто процитировал документацию

Google
Митко Соловец?
22.08.2016
09:58:38
http://www.javable.com/columns/robinson/letters/01/

Bogdan
22.08.2016
10:04:47
короче, праильно будет пересказать спеку

потому что у каждого свои представления о "ссылках"

тогда в такой формулировке вопрос некорректный

Митко Соловец?
22.08.2016
10:08:07
ну вот по ссылке выше, цитат прям из спеки

guga
22.08.2016
10:15:00
из-за таких особеностей жабки, стараюсь избегать var и юзать только final / val

Митко Соловец?
22.08.2016
10:15:30
всегда и везде?)

а если по бизнес-логике такое нужно, то не избегаешь??

guga
22.08.2016
10:17:56
вот не помню такого, что бы прямо по зарез нужно было именно изменить, что мешает вернуть новый объект, с нужными значениями, а старый отдать в gc, если он больше никому не нужен.

Хотя, помню в jdk есть какие-то классы, в которые передаешь dst для операции. То ли system.arraycopy то ли работа с сетью.

Митко Соловец?
22.08.2016
10:21:00
например войд методы валидации

guga
22.08.2016
10:21:49
Это те которым нужно передать мапу для ошибок?

вот это лютый зашквар

Митко Соловец?
22.08.2016
10:22:21
норм ты ща обоссал спринг валидатор

?????

правда в чем зашквар, непонятно

guga
22.08.2016
10:24:48
меня очень бесило писать код аля Map<String, String> errors = new HashMap<>(); Validator.validate(entity, errors); if(errors.isEmpty()){ ... } else { ... }

статические методы, тупо убивают ооп

Митко Соловец?
22.08.2016
10:25:39
ну во-первых, можешь сделать статический импорт

тогда будет коротко и красиво

Google
Митко Соловец?
22.08.2016
10:25:55
во-вторых, можно это обернуть в нестатический кастомный метод

или сделать спринг бобом

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

и я лично не вижу в этом зашквара

guga
22.08.2016
10:27:05
почему валидатор возвращает void?

и зачем ему мапа с ошибками как параметр?

а ещё у меня пригорело от того, что лид любил вот это и везде с собой носил. http://oval.sourceforge.net/

Митко Соловец?
22.08.2016
10:31:59
ну окей, можешь булеан возвращать

мапа с ошибками - очевидно, чтобы все ошибки передать на фронтенд

в кейсах, где юзеру это важно

guga
22.08.2016
10:32:57
эм, а почему возвращать мапу?

Митко Соловец?
22.08.2016
10:33:26
что?

Митко Соловец?
22.08.2016
10:33:56
почему бы не возвращать мапу?

guga
22.08.2016
10:34:23
ну, мапу с ошибками, и дальше точно так делаешь, если объект валиден, мапа пустая, нет — в ней лежат эрроры

Митко Соловец?
22.08.2016
10:34:35
окей

а теперь по цепочке вызови 10 валидаторов

что с твоим кодом будет?)

или будешь временные ссылки создавать

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

guga
22.08.2016
10:37:57
В нутрях спринг можешь пробрасывать как ему угодно. Насколько я помню, там валидация на аннотациях, и оно всё равно рефлексией шарится по твоих классам, так что завести у себя внутри ещё мапу для ошибок, не так уж накладно.

Google
guga
22.08.2016
10:39:14
Но это их решение и оно видно всем нравится, раз не меняют

Митко Соловец?
22.08.2016
10:40:01
учитывая, что можно обойтись одной и воспользоваться волшебством ссылок в жабе

https://jira.spring.io/browse/SPR-12954

гуга, смотри

guga
22.08.2016
10:43:05
То что я видел в scala, Они возращают Try, где в Success лежит твоя валидная сущность, а Failure ошибка или лист ошибок

https://jira.spring.io/browse/SPR-12954
хм, нравится. Лучше чем аннотации.

Митко Соловец?
22.08.2016
10:44:45
для маленьких приложений норм вообще

guga
22.08.2016
10:47:35
Собственно так же делает sparkjava, ratpack и возможно vertx.

Towhopu
22.08.2016
10:48:01
https://jira.spring.io/browse/SPR-12954
> will resolve "Annotation Hell" which revealed after "XML Hell" had been cleared Первая мысль: И потом появится уже Lambda Hell

Admin
ERROR: S client not available

Митко Соловец?
22.08.2016
10:48:49
вот поэтому контроллеры должны быть тонкими

иначе лапша потом будет адская

guga
22.08.2016
10:49:34
лол, всё никак не прочту его книгу. Как он живет с жавой, совсем не понятно.

Andrey
22.08.2016
10:50:21
лол, всё никак не прочту его книгу. Как он живет с жавой, совсем не понятно.
В разборе полётов он описывал - это ужасно звучит.

К примеру, он говорил, что нельзя использовать составные имена, типа userName, так как это свидетельствует, что вы плохо продумали структуру класса.

guga
22.08.2016
10:51:55
Ну, после того как я услышал, что лямбды не нужны, нужно всё фигачить через анонимные классы и увидел его код на гитхабе, я его в серьез не воспринимаю. Но книга, говорят, забавная.

Митко Соловец?
22.08.2016
10:52:47
вот говорят

Google
Митко Соловец?
22.08.2016
10:52:53
что кодинг - это искусство и творчество

а в итоге создаем сами себе преграды

живем на веру

это не правильно вообще

Andrey
22.08.2016
10:53:38
что кодинг - это искусство и творчество
Это да. Я кайф испытываю, когда понимаю, что написал идеальный код)

guga
22.08.2016
10:53:41
https://github.com/yegor256/

Andrey
22.08.2016
10:53:50
А через год *facepalm*)

Митко Соловец?
22.08.2016
10:53:53
как ты это понял?

потому что дяди сказали так?

я считаю, надо просто придерживаться каких-то основ, но уж в реализации оставьте творчество

Andrey
22.08.2016
10:55:00
потому что дяди сказали так?
Нет, я сам себя стараюсь оценивать. В данном случае я сумел вынести всю логику в отдельные методы. И теперь у меня есть 2 метода, которые обрабатывают информацию. А остальные методы являются прокси к ним для разных форматов данных.

guga
22.08.2016
10:55:20
что кодинг - это искусство и творчество
Ну, промышленный код — это вряд ли искусство, скорее ремесло.

Митко Соловец?
22.08.2016
10:55:45
давайте как роботы писать одинаковый код

Andrey
22.08.2016
10:56:06
Вот я тоже часто про него слышу, а его все зовут и он все выступает.
Каждый человек имеет право на мнение. Почему его не должны звать?

guga
22.08.2016
10:56:52
Эм, так для этого и есть спринги всякие, что от проекта к проекту, только бизнес логика отличалась.

ThisIs
22.08.2016
10:56:56
что за jspa(java servlet alias)

кто знает что это

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