170 похожих чатов

Получил сегодня интересный вопрос по solid. Надо было привести примеры

где в коллекциях java нарушается принцип Барбары Лисков.

Я ответил, что TreeMap если в конструктор не передать свой компаратор будет в случае null ключа падать с NPE, а HashMap норм будет и ConcurrentModificationException не будет при CopyOnWriteArrayList, но будет в обычных листах.

Знаете еще примеры?

19 ответов

13 просмотров

IdentityHashMap. Вроде даже в доках это признают.

https://docs.oracle.com/javase/8/docs/api/java/util/IdentityHashMap.html > While this class implements the Map interface, it intentionally violates Map's general contract, which mandates the use of the equals method when comparing objects. This class is designed for use only in the rare cases wherein reference-equality semantics are required.

Ivan-Pavlov Автор вопроса
Sergey Kapralov
https://docs.oracle.com/javase/8/docs/api/java/uti...

Спасибо, интересно даже не знал, что такая реализация есть

А где здесь нарушения LSP?

Ivan-Pavlov Автор вопроса
Etki
А где здесь нарушения LSP?

Фиговые примеры, но я больше ничего не придумал, вообще его нету потому что это 2 разные реализации, а LSP нарушался бы если бы вел себя не как родитель.

Интересно это на джуна или синьера?) Я LSP знаю, но так вот без компа вспонмить подобные примеры - не вспонил бы

Ivan-Pavlov Автор вопроса
Владимир Наваев
Интересно это на джуна или синьера?) Я LSP знаю, н...

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

Ivan Pavlov
Они смотрят от мидла и выше, какие погоны дадут по...

Хм, интересно. Обычно на подобные позиции такую херню не спрашивают. Больше про опыт и конкретные кейсы с предыдущей работы

Ivan-Pavlov Автор вопроса
Ivan-Pavlov Автор вопроса
Владимир Наваев
Хм, интересно. Обычно на подобные позиции такую хе...

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

List и его реализация Unmodifiable list. List нам говорит, что мы можем использовать метод sort(), но он сортирует тот массив, на котором вызывали метод, то есть, меняет его. А Unmodifiable list подразумевает, что его изменять нельзя. Поэтому, когда в list кладем Unmodifiable list, то получаем UnsupportedOperationException

Danil Levchenko
List и его реализация Unmodifiable list. List нам ...

UOE прямо в джавадоке листа разрешен

Danil Levchenko
List и его реализация Unmodifiable list. List нам ...

Во кстати, наверное они про это хотели услышать, а не про те редкие кейсы)

Etki
UOE прямо в джавадоке листа разрешен

Не суть, главное, что по сути unmodif не является листом в полном смысле

Danil Levchenko
Не суть, главное, что по сути unmodif не является ...

лолшто? выполняет контракт но не является?

Etki
лолшто? выполняет контракт но не является?

Мы говорим про LSP, прочитай его ещё раз

Etki
UOE прямо в джавадоке листа разрешен

Имхо это - LSP читерство. Толку то от того, что в джава доке об этом есть, если программы-клиенты при подобной подстановке превращаются в тыкву.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта