Есть ли в Java быстрый способ реализации интерфейсов? - PullRequest
3 голосов
/ 21 сентября 2011

Можем ли мы использовать методы-заглушки для реализации интерфейсов? то есть предположим, что я получаю сообщение о том, что я должен реализовать ServletRequestAttributeListener and HttpSessionListener - что мне нужно сделать? Могу ли я просто поставить подпись метода и использовать фиктивные значения?

Ответы [ 4 ]

2 голосов
/ 21 сентября 2011

Я понимаю, что вы вообще говорите об этих XxxListener интерфейсах в Servlet API.

Если вы не заинтересованы в подключении к событию, просто ничего не делайте. Оставьте тело метода пустым. При необходимости добавьте комментарий, например NOOP (без операции), чтобы отключить предупреждение IDE «пустое тело».

@Override
public void sessionDestroyed(HttpSessionEvent event) {
    // NOOP.
}

Для других интерфейсов это зависит от их контракта. Я бы прочитал их Javadocs, чтобы быть уверенным.

1 голос
/ 21 сентября 2011

Да, вы можете, если понимаете главный недостаток этого: контракт, предоставленный интерфейсом, не будет удовлетворен вашим классом.Это может быть проблемой, если другие используют ваш код.

0 голосов
/ 21 сентября 2011

Вы должны подумать о том, чтобы потратить некоторое время на изучение шаблонов проектирования.Я думаю, что вы ищете Шаблон шаблона .Хорошая книга для изучения шаблонов дизайна - Head First Design Patterns .Это легко читается и имеет отличную информацию.

0 голосов
/ 21 сентября 2011

Объявление абстракта вашего класса не заставляет вас реализовывать метод интерфейса, но вам нужно будет сделать это в подклассе:

public interface bar{ public void aMethod();}
public abstract class foo implements bar{ 
     //aMethod could be not implemented here, but in the first concrete subclass of foo
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...