我想扩展Java的HashMap<K, V>
类。我重写了该put(...)
方法,并且在某些情况下想抛出异常。
由于基类的put
方法不会引发异常,因此会出现编译器错误。
最好的解决方案是什么?
谢谢!
您可以在子类中创建一个不重写的方法put
,但在put()
必要时调用原始方法。这样的方法将被允许抛出您希望的任何异常。
或者,你可以扔掉的未检查异常的一个put
已经可以扔掉(UnsupportedOperationException
,ClassCastException
,NullPointerException
,IllegalArgumentException
)或任何其他未检查异常(尽管这会少些建议,因为他们不会在被记录Map
界面)。
从Map::put
Javadoc:
抛出:
UnsupportedOperationException-如果此映射不支持放置操作
ClassCastException-如果指定键或值的类阻止其存储在此映射中
NullPointerException-如果指定键或值为null且此映射不允许空键或
IllegalArgumentException值-如果指定键或值的某些属性阻止将其存储在此映射中
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句