Java 中的方法如何既可以是抽象的又可以声明为 "optional"?

How a method in Java can be both abstract and declared as "optional"?

例如在Collection接口中,我们有:

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

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

void clear()

Removes all of the elements from this collection (optional operation). The collection will be empty after this method returns.

Throws: UnsupportedOperationException - if the clear operation is not supported by this collection

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