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

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public class ConfigManager implements IConfigManager<ConfigManager> {
    // skipped...
    public ConfigManager setName(String name) {
       return null;
    }
    // skipped...
    }

    POJO для хранения конфигов. setName определен в интерфейсе, при этом где то реализация есть, а где то нету. Видимо где вылетало - там и реализовали...

    Запостил: eveenah, 19 Декабря 2012

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

    • А что, в Java можно реализовать не все методы интерфейса? Хм...
      Ответить
      • Нельзя, интерфейс вообще до 8 версии жабы не может содержать реализаций. Здесь "определен в интерфейсе" нужно читать как "объявлен в интерфейсе"
        Ответить
        • Я имел в виду реализовать методы интерфейса в классе. Просто в C# класс должен реализовать все методы своих интерфейсов. В С++ абстрактному классу нельзя создать экземпляр...
          Ответить
          • в жабе нужно реализовать все методы или объявить класс абстрактным. А уж как он реализует методы - возвращает null или кидает OperationNotSupportedException - это его дело.
            Ответить
            • А, в этом смысле "нет реализации" (в описании ГК). Тогда все нормально.
              Ответить
        • вы принесли плохие новости...
          эти дефолт методы в интерфейсах - совсем не то, что я хотел (
          Ответить

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