1. Java / Говнокод #3070

    +84

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public void setPhones(List<PhoneNumber> phones) throws Exception {
        this.phones = phones;
        this.phones.clear();
        this.phones.addAll(phones);
    }

    Вот такой метод нашёл сегодня в коде.

    Запостил: asolntsev, 21 Апреля 2010

    Комментарии (10) RSS

    • Скопируем, удалим, сново скопируем?
      Ответить
    • результат рефакторинга судя по всему. не очень говнюче
      Ответить
      • м.. что же тут отрефакторено?
        Ответить
        • Сначала хотели приравнивать список:

          this.phones = phones;

          Потом подумали, что это не найс (по каким-то нам неизвестным причинам) и решили не приравнивать, а очищать уже существующий и добавлять из принимаемого, т.е. теперь после вызова setPhones внутренний phones прямо не зависит от изменений внешнего phones:

          this.phones.clear();
          this.phones.addAll(phones);

          Или наоборот.
          Ответить
        • А this.phones.clear() не очистит-ли заодно и phones? (или Java скопирует обьекты?)
          Ответить
    • Вы всё ещё пользуетесь говносборщиком? Используйте умные указатели и получите профит!
      Ответить

    Добавить комментарий