Java中的方法如何既抽象又声明为;“可选”吗;?

Java中的方法如何既抽象又声明为;“可选”吗;?,java,abstract-methods,Java,Abstract Methods,例如,在集合界面中,我们有: 如果该方法是可选的,则意味着(我假设)它不必实现。但是,抽象方法必须由具体类实现。我错过了什么?他们的意思是我们可以有空方法吗?来自 无效清除() 从此集合中删除所有元素(可选操作)。此方法返回后,集合将为空 抛出: UnsupportedOperationException-如果此集合不支持清除操作 这只是意味着必须实现它,但您可以在文档中声明您不支持它(无论出于何种原因),然后您应该抛出一个UnsupportedOperationException。代码方面,

例如,在集合界面中,我们有:

如果该方法是可选的,则意味着(我假设)它不必实现。但是,抽象方法必须由具体类实现。我错过了什么?他们的意思是我们可以有空方法吗?

来自

无效清除()

从此集合中删除所有元素(可选操作)。此方法返回后,集合将为空

抛出: UnsupportedOperationException-如果此集合不支持清除操作


这只是意味着必须实现它,但您可以在文档中声明您不支持它(无论出于何种原因),然后您应该抛出一个UnsupportedOperationException。

代码方面,您必须实现它。但是没有什么能阻止你用无意义的代码来实现它。例如,如果调用了异常,只会抛出异常。因此,虽然这个“可选”没有语言支持,但您仍然可以这样做。