首页 > 解决方案 > Java中的方法如何既可以是抽象的又可以声明为“可选”?

问题描述

例如在 Collection 接口中,我们有: 来自 Java 文档 - 集合接口

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

标签: javaabstract-methods

解决方案


来自https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html#clear--

无效清除()

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

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

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


推荐阅读