在Java中,有没有任何注释可以将方法标记为不支持?例如,假设我正在编写一个实现java.util.List
接口的新类。该接口中的add()方法是可选的,而且我在我的实现中不需要它们,因此我需要执行以下操作:
public void add(Object obj) {
throw new UnsupportedOperationException("This impl doesn't support add");
}
不幸的是,在这种情况下,直到运行时才会发现实际上不支持此操作。
理想情况下,这应该在编译时捕获,并且这样的注释(例如 @UnsupportedOperation
)将提示IDE向该方法的任何用户说:“嘿,您正在使用不受支持的操作”,就像使用 @Deprecated
标志Eclipse突出显示任何使用过时项的用法一样。
add()
方法的类,却还在使用List
,这很荒谬。你在这里做错了什么,但我没有足够的信息来判断是什么。 - Erick Robertsonjava.util.Collections.unmodifiableList()
,了解何时使用和接受此方法的示例。 - Jonathanadd()
时,那个对象会做什么? - Erick RobertsonUnsupportedOperationException
。” - Jonathan