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

    +83

    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
    /**
     * intended to be used for enums implementation
     */
    public interface NullValueHolder<T> {
        T getNullValue();
    }
    
    
    // в тесте
    enum TestEnum implements NullValueHolder<TestEnum> {
    TEST;
        public TestEnum getNullValue() {
            return null;
        }
    }

    Видимо, часть метафабрики для создания метапрограмм
    Может, я чего-то в этой жизни не понимаю?

    Запостил: roman-kashitsyn, 06 Апреля 2012

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

    • А вдруг кто-то захочет забабахать для каждого энума свой null? С маджонгом и гейшами?
      Ответить
    • может планировалось использование в стиле:
      enum TestEnum implements NullValueHolder<TestEnum> {
      NULL, TEST;
          public TestEnum getNullValue() {
              return NULL;
          }
      }


      Типа в енуме есть значения, которые трактуются как "пустые". А в примере возвращается обычный null, чтобы показать, что енум не подразумевает "пустых" значений. Интерфейс, например, мог быть вынесен для фильтрации любых коллекций енумов от пустых значений.

      П. С. Чем больше думаю, тем менее правдоподобным становятся мои аргументы :)
      П. П. С. Плюсану. При такой реализации, даже фильтрование листа будет сделано через жопу.
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • - Ну вот, - отвечает, - это и есть моя главная проблема на сегодняшний день: как сделать так, чтобы даже поллюций не было.
      Ответить

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