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

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    if (scope.equals("page")) {
        beanObject = context.getAttribute(bean);
    } else {
        if (scope.equals("request")) {
            beanObject = context.getRequest().getAttribute(bean);
        } else {
            if (scope.equals("session")) {
                beanObject = context.getSession().getAttribute(bean);
            } else {
                if (scope.equals("context")) {
                    beanObject = context.getServletContext().getAttribute(bean);
                }
            }
        }
    }

    Запостил: Eyeless, 14 Июля 2012

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

    • и за такое спасибо Сану...
      Ответить
    • а как часто бывает необходимо делать switch по строке?

      За последние 4 года ни разу не возникло такой потребности.
      Ответить
      • Собственно, весь Project Coin не нужен
        Ответить
      • Pattern Matching
        Ответить
        • Назвать pattern matching свитчем по строке язык не поворачивается. В некотором роде это свитч, да.
          Ответить
          • Паттерн матчинг успешно применяется для эмуляции свича по строке.
            Ответить
            • >для эмуляции свича по строке
              который, разумеется, не нужен
              Ответить
        • Потырил мячик.
          Ответить
      • >как часто бывает необходимо делать switch по строке?
        Для тех кто не осилил мапы - постоянно.
        Ответить
        • И чем мапа удобнее свича?
          Ответить
          • 1. Свич по строкам не оптимизируется - обычно это перебор.
            Мапа же работает по тому алгоритму какой ты выбрал при её создании - дерево, хеш итд.
            2. Унификация и экономия кода (в жабе так как в моем примере не скомпилицо, но если юзать варарги то выйдет так же коротко ).
            Но в груви, путхоне, js - это запросто.

            Map m=new HashMap(4){{ //специально взял js-синтаксис - он оптимален
            	"page":context
            	,"request":context.getRequest()
            	,"session":context.getSession()
            	,"context":context.getServletContext()
            }}
             beanObject =m.get(scope).getAttribute(bean);
            Ответить

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