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。
例如在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。