我们可以使用存根方法来实现接口吗?即,假设我收到一条消息,说我必须实施ServletRequestAttributeListener and HttpSessionListener
- 我需要做什么?我可以简单地设置方法签名,并使用虚拟值吗?
答案 0 :(得分:2)
我知道你一般都在谈论Servlet API中的那些XxxListener
接口。
如果您对此事件没有兴趣,请不要做任何事情。将方法体留空。如果需要,请添加注释,如NOOP
(无操作),以禁止IDE“空体”警告。
@Override
public void sessionDestroyed(HttpSessionEvent event) {
// NOOP.
}
对于其他界面,这取决于他们的合同。我确实读过他们的javadoc。
答案 1 :(得分:1)
是的,只要你了解这个的主要缺点就是你可以:你的班级不会满足界面提供的合同。如果其他人最终使用您的代码,这可能是一个问题。
答案 2 :(得分:0)
声明你的类abstract不会强迫你实现接口的方法,但你需要在子类中执行它:
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
}
答案 3 :(得分:0)
您应该考虑花一些时间来研究设计模式。我认为你要找的是The Template Method Pattern。探索设计模式的好书是Head First Design Patterns。这是一个简单的阅读,并有一些很好的信息。