Can we use stub methods for implementing interfaces ? i.e., suppose I get a message that says I must implement ServletRequestAttributeListener and HttpSessionListener  - what do I need to do? Can I simply put the method signature, and use dummy values?
 
    
    - 11,982
- 40
- 122
- 216
- 
                    1Why would you implement an interface and not adhere to its contract properly? – alternative Sep 20 '11 at 22:39
- 
                    @monadic - Well, in my case just to have a running system and then later I can go back and fix it. i.e, I'm putting it on the backburner, and will later come back. – Caffeinated Sep 20 '11 at 22:40
- 
                    Yes you can create stub methods, but it almost sounds as if that class should be abstract then. – Hovercraft Full Of Eels Sep 20 '11 at 22:41
- 
                    @monadic: particularly in the Servlet API there are this kind of interfaces like `Filter`, `ServletRequestListener`, `HttpSessionListener`, etc. You are however not necessarily required to do any business job in all methods. For example, you may not be interested in doing `init()` or in hooking on *both* `created` and `destroyed` events, etc. – BalusC Sep 20 '11 at 22:49
4 Answers
I understand that you're in general talking about those XxxListener interfaces in the Servlet API. 
- http://download.oracle.com/javaee/6/api/javax/servlet/package-summary.html
- http://download.oracle.com/javaee/6/api/javax/servlet/http/package-summary.html
If you're not interested in hooking on the event, just do nothing. Leave the method body empty. If necesary, add a comment like NOOP (no operation) to suppress the IDE "empty body" warning.
@Override
public void sessionDestroyed(HttpSessionEvent event) {
    // NOOP.
}
For other interfaces, it depends on their contract. I'd read their javadocs to be sure.
 
    
    - 1,082,665
- 372
- 3,610
- 3,555
- 
                    1@Adel yes, and using that annotation is [recommended](http://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why)! – Tyler Sep 20 '11 at 22:46
- 
                    And it shuts up the IDE from generating warnings for unused parameters :) – BalusC Sep 20 '11 at 22:47
Yes you can as long as you understand the main drawback of this: the contract provided by the interface will not be satisfied by your class. This may be a problem if others end up using your code.
 
    
    - 31,350
- 13
- 63
- 94
Declare your class abstract doesn't force you to implement interface's method, but you will need to do it in a subclass:
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
}
 
    
    - 38,762
- 28
- 132
- 190
You should consider investing some time into looking at design patterns. I think what you are looking for is The Template Method Pattern. A good book for exploring design patterns is Head First Design Patterns. It's an easy read and has some great info.
 
    
    - 3,176
- 1
- 21
- 29