Size: a a a

2020 November 19

SS

Slava S in learn.java
в общем случае правильно с final
источник

N

Nonverbis in learn.java
Slava S
в общем случае правильно с final
Т.е. лучше сделать конфиг, там метод, на него @Bean и возвращать new RecipeService(). Тогда и с final заработает.

Но я вот не понимаю, а что ему мешает заработать с final и без этого? Ну, оно же с конструктором работает. Т.е. спринг бут ему дает экземпляр класса-то. Почему он не может быть final?
источник

SS

Slava S in learn.java
конкретно про спринг бут не скажу, к сожалению
источник

N

Nonverbis in learn.java
Slava S
если будете присваивать снаружи, да заработает
Но вы же вот об этом что-то знаете. Похоже, ключ именно здесь. Но что-то тут у меня вообще чуйки нет. А вот интересно.
источник

SS

Slava S in learn.java
Nonverbis
Но вы же вот об этом что-то знаете. Похоже, ключ именно здесь. Но что-то тут у меня вообще чуйки нет. А вот интересно.
я скорее по ООП знаю и знаю что может быть если оставить не final
источник

L

Linnik 🎄 in learn.java
Dmtr Klkv
Ничего не устарел, свинг в jdk есть по умолчанию, javafx теперь как внешняя библиотека подключается.
Не знаю, везде пишут что устарел.
источник

N

Nonverbis in learn.java
Slava S
я скорее по ООП знаю и знаю что может быть если оставить не final
Если объявить переменную ссылочного типа final, объект по ссылке вообще никак нельзя изменить. Или все же можно с ним хоть что-то сделать? Например, если его члены тоже ссылочного типа и торчат наружу?
источник

SS

Slava S in learn.java
если final, то ссылку нельзя изменить
Состояние же RecipeService зависит исключительно от его контракта (набор методов и параметров)
источник

DC

Denis Chikanov in learn.java
Nonverbis
Если объявить переменную ссылочного типа final, объект по ссылке вообще никак нельзя изменить. Или все же можно с ним хоть что-то сделать? Например, если его члены тоже ссылочного типа и торчат наружу?
Почитайте любую книжку по основам языка, с таким вопросом в первой главе или двух ответ будет.
источник

N

Nonverbis in learn.java
Slava S
если final, то ссылку нельзя изменить
Состояние же RecipeService зависит исключительно от его контракта (набор методов и параметров)
В смысле ссылку нельзя изменить? Ссылка всегда передается по значению. Т.е. саму ссылку изменить нельзя никак, если я не ошибаюсь.
источник

SS

Slava S in learn.java
значение в классе holder'е можно изменить
источник

SS

Slava S in learn.java
и присвоить например null
источник

SS

Slava S in learn.java
и тогда будет очень сложно понять, кто и в какое время засунул туда null
источник

N

Nonverbis in learn.java
Slava S
и присвоить например null
Так мне в бинах вообще все лучше final объявить?
источник

SS

Slava S in learn.java
если поле не меняется, то да
источник

N

Nonverbis in learn.java
Slava S
если поле не меняется, то да
А как в бинах, если синглетон, может поле меняться?
источник

SS

Slava S in learn.java
по ООП рекомендую две книги которые сам читал
https://www.ozon.ru/context/detail/id/2336754/
http://sergeyteplyakov.blogspot.com/2009/09/blog-post_15.html
источник

SS

Slava S in learn.java
Nonverbis
А как в бинах, если синглетон, может поле меняться?
если синглтон не лейзи, то можно с финал, если с лейзи, то с финалом уже вряд ли получится
источник

SS

Slava S in learn.java
но если есть синглтоны это так себе дизайн. Если нет на это весомых обоснований
источник

DC

Denis Chikanov in learn.java
Nonverbis
В смысле ссылку нельзя изменить? Ссылка всегда передается по значению. Т.е. саму ссылку изменить нельзя никак, если я не ошибаюсь.
источник