LINUX.ORG.RU

История изменений

Исправление vbr, (текущая версия) :

Кстати да, спасибо за пример, я жёстко протупил. Я-то билдер проектирую для создания объекта и изменение объекта не делаю. Но в общем случае оно будет нужно и, конечно, нужна необходимость обнулить поле. Т.е. только мой метод

    void age(Integer age) { this.age = requireNonNull(age); }

однозначно не подходит. Нужен или специальный метод очищения age (unknownAge или подобный), или просто принимать null тут, или принимать тут Optional.

Специальный метод вроде соотвествует описываемым принципам построения API (не принимать null и Optional в параметрах).

Принимать null - самый простой способ, не оказывает влияния на производительность.

Принимать Optional - даёт симметрию с геттером.

Есть над чем подумать…

Исправление vbr, :

Кстати да, спасибо за пример, я жёстко протупил. Я-то билдер проектирую для создания объекта и изменение объекта не делаю. Но в общем случае оно будет нужно и, конечно, нужна необходимость обнулить поле. Т.е. только мой метод

    void age(Integer age) { this.age = requireNonNull(age); }

однозначно не подходит. Нужен или специальный метод очищения age (unknownAge или подобный), или просто принимать null тут, или принимать тут Optional.

Специальный метод вроде соотвествует описываемым принципам построения API (не принимать null и Optional в параметрах).

Принимать null - самый простой способ, не оказывает влияния на производительность.

Принимать Optional - даёт симметрию с геттером.

Есть над чем подумать.

Исправление vbr, :

Кстати да, спасибо за пример, я жёстко протупил. Я-то билдер проектирую для создания объекта и изменение объекта не делаю. Но в общем случае оно будет нужно и, конечно, нужна необходимость обнулить поле. Т.е. только мой метод

    void age(Integer age) { this.age = requireNonNull(age); }

однозначно не подходит. Нужен или специальный метод очищения age (unknownAge или подобный), или просто принимать null тут, или принимать тут Optional.

Есть над чем подумать.

Исходная версия vbr, :

Кстати да, спасибо за пример, я жёстко протупил. Я-то билдер проектирую для создания объекта и изменение объекта не делаю. Но в общем случае оно будет нужно и, конечно, нужна необходимость обнулить поле. Т.е. мой метод

    void age(Integer age) { this.age = requireNonNull(age); }

однозначно не подходит. Нужен или специальный метод очищения age (unknownAge или подобный), или просто принимать null тут, или принимать тут Optional.

Есть над чем подумать.