For*_*ick 3 java oop polymorphism overriding exception
我想扩展Java的HashMap<K, V>类.我重写该put(...)方法,我想在某些情况下抛出异常.
由于基类的put方法不会抛出异常,因此出现编译错误.
什么是最好的解决方案?
谢谢!
您可以在子类中创建一个不覆盖的方法put,但put()必要时调用原始方法.这种方法将被允许抛出任何你想要的例外.
或者你可以抛出unchecked异常是一个put已经可以扔掉(UnsupportedOperationException,ClassCastException,NullPointerException,IllegalArgumentException)或任何其他未检查异常(尽管这会少些建议,因为他们不会在被记录Map界面).
来自Map::putJavadoc:
抛出:
UnsupportedOperationException - 如果此映射不支持put操作
ClassCastException - 如果指定键或值的类阻止它存储在此映射中
NullPointerException - 如果指定的键或值为null并且此映射不允许null键或values
IllegalArgumentException - 如果指定键或值的某些属性阻止它存储在此映射中