Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,有没有实现接口的快捷方式?_Java_Interface - Fatal编程技术网

在Java中,有没有实现接口的快捷方式?

在Java中,有没有实现接口的快捷方式?,java,interface,Java,Interface,我们可以使用存根方法来实现接口吗?i、 例如,假设我收到一条消息,说我必须实现ServletRequestAttributeListener和HttpSessionListener——我需要做什么?我可以简单地将方法签名,并使用伪值吗?是的,只要您理解这一点的主要缺点:您的类不会满足接口提供的契约。如果其他人最终使用了您的代码,这可能会是一个问题。我知道您通常谈论的是Servlet API中的XxxListener接口 如果你对这件事不感兴趣,就什么也不做。将方法主体保留为空。如有必要,

我们可以使用存根方法来实现接口吗?i、 例如,假设我收到一条消息,说我必须实现
ServletRequestAttributeListener和HttpSessionListener
——我需要做什么?我可以简单地将方法签名,并使用伪值吗?

是的,只要您理解这一点的主要缺点:您的类不会满足接口提供的契约。如果其他人最终使用了您的代码,这可能会是一个问题。

我知道您通常谈论的是Servlet API中的
XxxListener
接口

如果你对这件事不感兴趣,就什么也不做。将方法主体保留为空。如有必要,添加类似于
NOOP
(无操作)的注释以抑制IDE“empty body”警告


对于其他接口,这取决于它们的合同。我会阅读他们的Javadoc以确保。

声明您的类摘要不会强制您实现接口的方法,但您需要在子类中实现它:

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
}

你应该考虑花一些时间来研究设计模式。我想你要找的是。一本探索设计模式的好书是。这本书很容易阅读,而且有一些很好的信息。

为什么你要实现一个接口而不正确遵守它的合同?@monadic-好吧,在我的情况下,只是为了有一个运行的系统,然后我可以回去修复它。i、 是的,你可以创建存根方法,但是听起来好像这个类应该是抽象的。@monadic:特别是在Servlet API中,有这样的接口,比如
Filter
ServletRequestListener
HttpSessionListener
,然而,您不一定需要在所有方法中执行任何业务工作。例如,您可能对执行
init()
或钩住创建的
和销毁的
事件等都不感兴趣。@Adel yes,使用该注释是!它阻止IDE为未使用的参数生成警告:)嗯,哦,这很有趣。我现在有很多值得思考的东西。
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
}