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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private String stateChangedReason;
    ...
    
    if (stateChangedReason != null && stateChangedReason instanceof String) {
                dealerManageInfo.setChangeStateReason(stateChangedReason.toString());
    }

    Запостил: amarfey, 15 Февраля 2013

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

    • А что если String это базовый класс? есть
      String1 extends String
      String2 extends String

      и выше по коду есть проверка
      if(stateChangedReason instanceof String1)
      {
      ...
      return;
      }
      Ответить
      • Даже если бы кто-то написал свой String - все равно нужно было бы указывать пакет... Хотя, хз, может если в корень положить, то пользовательский класс заслонит собой встроенный, но проверять лень.
        Ответить
      • стринг же в жабе вроде final, не?
        Ответить
        • угу. недавно уже обсуждалось.
          http://govnokod.ru/12583#comment169578
          Ответить
    • тип был другой, интегер возможно, а потом поменяли на стринг, а код исправить забыли.
      в любом случае, это нормальний код, так как компылятор приберет все лишнее сам, так что разницы нет некакой, и этот код абсолютно рабочий!
      Ответить
      • поддерживаю комментарий. определенно тип раньше был другой, а это просто жертва рефакторинга. на то что тип был другой, косвенно указывает stateChangedReason.toString().

        Единственное, что до рефакторинга проверка на null не нужна была, т. к. instanceof для null всегда вернет false
        Ответить
    • Какие привередливые жабисты пошли, уже не всякий стринг им стринг...
      Ответить
    • #0: import com.mycompany.String;
      Ответить
      • Я уже об этом выше говорил: в таком случае нужно будет квалифицировать неродной стринг (я так думаю, но по-прежнему лень пробовать), потому что родное импортируется в не зависимости от желаний моей компании.
        Ответить
        • Да вот нет, попробовал, после такого импорта квалифицировать приходится стандартный java.lang.String, а импортированный работает без квалификации.
          Ответить
          • Хех, ну вобщем-то логика в этом есть. Если явно импортировали - то и квалифицировать надо то, что неявно импортировано... Вопрос - можно ли будет квалифицировать неродной, если оба явно импортировать.
            Ответить
            • Импортировать два класса с одним именем нельзя. Да и зачем? Если бы можно было, то пришлось бы квалифицировать оба String'а, а это можно делать и вообще без импортов.
              Ответить
      • стринг стандартный, джавовый
        Ответить
    • Ну вот и всё, это конец. Скоро угарный газ, этот кровяной яд, сделает своё дело, и из-за пожара одним парнем на свете станет меньше. Но мне нечего терять, я и так уже потерял самое дорогое, что у меня было, так что я ни о чём не жалею. Маму с тётей только жаль, плакать они будут очень сильно. А друзья... Был ли у меня хоть один настоящий друг за всю мою короткую жизнь? Наверное, всё же нет. Хотя теперь это не важно. Теперь уже ничего не важно.
      Ответить

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