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

    +77

    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
    /**
         * Returns the an array (length 1) containing the checkbox menu item
         * label or null if the checkbox is not selected.
         * @see ItemSelectable
         */
        public synchronized Object[] getSelectedObjects() {
            if (state) {
                Object[] items = new Object[1];
                items[0] = label;
                return items;
            }
            return null;
        }

    java.awt.CheckboxMenuItem

    Запостил: Lure Of Chaos, 03 Июля 2012

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

    • AWT такое AWT? Или есть разумное объяснение почему именно так, а не просто label or null, или же массив с нулем элементов или с одним элементом?

      P.S. Дошло. getSelectedObjects.
      Ответить
      • P.P.S. Все равно, имхо, кривость какая-то с этим ItemSelectable. Разве не логичней было бы, чтобы этот интерфейс имплементило само меню, а не его пункты? Возвращало бы список пунктов, которые выделены...
        Ответить
    • returns the an array.
      Какой-то тот самый.
      Ответить
    • Не. Я чёто не пойму. Есть интерфейс.
      class CheckboxMenuItem extends MenuItem implements ItemSelectable
      /**
       * The interface for objects which contain a set of items for
       * which zero or more can be selected.
       */
      
      public interface ItemSelectable {
      
          /**
           * Returns the selected items or <code>null</code> if no
           * items are selected.
           */
          public Object[] getSelectedObjects();


      На мой взгляд говно если и есть то вот тут:
      >Returns the selected items or null if no
      > return null;

      Зря плюсанул. Типичное унылое жаба-говно.
      Ответить
      • Я вот не пойму, зачем они заимплементили этот интерфейс в чекбоксе и элементе меню.
        Ответить
        • Для соблюдения порядка.
          >MenuItem implements ItemSelectable
          Всё логично.
          Ответить
          • А почему тогда этот интерфейс не реализует меню? В нем ведь, тоже есть список элементов, которые могут быть помечены, как и в листе/комбобоксе.
            Ответить
            • думаю, потому, что пункты, раскрывающие подменю, не могут быть помечены.
              в самом деле, странно было бы, если бы в menubar'е менюшки можно было бы помечать галочками.
              Ответить
              • Хм. Ну и что. Никто не заставляет помечать и возвращать эти пункты. Тем более, что в ItemSelectable нет никаких средств для программной установки пометок.
                Ответить
    • И что? Типичная реализация интерфейса. У данного класса вот такая вот реализация поведения. Конечно, выглядит странно в отрыве от контекста. Но на то он и контекст.
      Ответить
      • > Конечно, выглядит странно в отрыве от контекста. Но на то он и контекст.
        шикааарная фраза!
        Ответить

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