Size: a a a

Clojure — русскоговорящее сообщество

2021 July 22

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
и еще раз, я ни в коем случае не утверждаю, что классический подход  Java лучше, просто у него есть очень даже понятные обоснования, с которыми просто надо ознакомиться
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Ок. Давай с другой стороны зайдём.
Вот допустим ты пишешь этот парсер JSON’а. И доходишь до этого места, где тебе нужно обоснованно принять подход. Нужно сделать выбор:
если ключа нет, то
Или кидать NPE,
Или вернуть null.
При этом ты уже реализовал метод “contains?”.

Каков будет твой выбор и каково будет его обоснование?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
если бы другие языки были бы такими же клёвыми, как кложа, то кложа не была бы кложей 😊
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
а что такое NPE?
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
non P exception?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Или вернуть null.
вот этого не принято делать в Java
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Null Pointer Exception
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Более 15 лет
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
есть мысль, что лучше без токсичности обойтись
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
маловато будет 😊
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Это из Java-мира - NullPointerException
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
в кложе есть nil punning, а в java такого не принято
поэтому и не будет в java так, как в кложе
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Нормуль.
Я не претендую на звание аксакала.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Кидать NullPointerException это жесть полная
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
опять не понимаю, почему ты называешь парсером интерфейс джсонобджект?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Java-джуну бы и то линейкой по рукам надавали бы
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
лучше, конечно, кидать какое-то более специфицированное исключение
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Так вот как это называется...
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
где тут тоскичность?
вполне нормальный вопрос, после ответа на который более понятна мотивация собеседника
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
хотя вру, в java.util.HashMap так же
    /**
    * Returns the value to which the specified key is mapped,
    * or {@code null} if this map contains no mapping for the key.
    *
    * <p>More formally, if this map contains a mapping from a key
    * {@code k} to a value {@code v} such that {@code (key==null ? k==null :
    * key.equals(k))}, then this method returns {@code v}; otherwise
    * it returns {@code null}.  (There can be at most one such mapping.)
    *
    * <p>A return value of {@code null} does not <i>necessarily</i>
    * indicate that the map contains no mapping for the key; it's also
    * possible that the map explicitly maps the key to {@code null}.
    * The {@link #containsKey containsKey} operation may be used to
    * distinguish these two cases.
    *
    * @see #put(Object, Object)
    */
   public V get(Object key)
источник