LINUX.ORG.RU

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

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

Optional это функциональщина для потоков, по большей части она больше ни для чего не нужна и только забивает код барахлом.

Почему ты замарачиваешься обработкой null, но не замарачиваешься c обработкой age < 0? Если нужна обработка null, так явно её введи.


@Getter
@Builder(toBuilder = true)
class Person {
    private final String name;
    private final @Nullable Integer age;


    public boolean isPatric() {
        return age == null;
    }

    public Optional<Integer> safePatric() {
        return Optional.ofNullable(age);
    }
}


void clone(Person person) {
        Person васян = person.toBuilder().name("Васян").build();
        Person дед = person.toBuilder().age(100500).build();
        Person патрик = person.toBuilder().age(null).build();
}

«Почему ты замарачиваешься обработкой null, но не замарачиваешься c обработкой age < 0? » - Это ключевой вопрос. Вокруг этого null бегают и скачут, как будто это что-то такое особое, хотя и идея его подсветит null-говнокод, да и других стредств обработки вагон, а вот другие логические ошибки (иногда гораздо более важные) забывают и оставляют за бортом и получают тот же самый говнокод, но nullsafe. Думать надо про общую логику, а не про частный nullsafe.

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

Optional это функциональщина для потоков, по большей части она больше ни для чего не нужна и только забивает код барахлом.

Почему ты замарачиваешься обработкой null, но не замарачиваешься c обработкой age < 0? Если нужна обработка null, так явно её введи.


@Getter
@Builder(toBuilder = true)
class Person {
    private final String name;
    private final @Nullable Integer age;


    public boolean isPatric() {
        return age == null;
    }

    public Optional<Integer> safePatric() {
        return Optional.ofNullable(age);
    }
}


void clone(Person person) {
        Person васян = person.toBuilder().name("Васян").build();
        Person дед = person.toBuilder().age(100500).build();
        Person патрик = person.toBuilder().age(null).build();
}

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

Optional это функциональщина для потоков, по большей части она больше ни для чего не нужна и только забивает код барахлом.

Почему ты замарачиваешься обработкой null, но не замарачиваешься c обработкой age < 0? Если нужна обработка null, так явно её введи.


@Getter
@Builder(toBuilder = true)
class Person {
    private final String name;
    private final @Nullable Integer age;


    public boolean isPatric() {
        return age == null;
    }
}


void clone(Person person) {
        Person васян = person.toBuilder().name("Васян").build();
        Person дед = person.toBuilder().age(100500).build();
        Person патрик = person.toBuilder().age(null).build();
}