如果出现以下情况,您会抛出IllegalStateException
吗?
final
,仅在构造函数中分配? 教科书示例:您的类是一个不变的
Collection<BigInteger>
,您的方法应该返回最大元素,但是此实例为空。我已经阅读过有关该主题的Kevin Bourillon`s blog post,但不确定哪个规则适用。
当然不。此类的许多实例都不为空,并且该操作将成功。
不完全的。该实例的长度为零,因此该实例不是,也永远不可能是非空的。
如果所讨论的参数是隐式
this
参数,则可能适用。这是我很想抛出的异常(exception),但我担心它可能会造成混淆。更新:将示例从
Collection<Integer>
更改为Collection<BigInteger>
,因为存在标识元素(Integer.MIN_VALUE
)的事实使问题分散了注意力。 最佳答案
我认为IllegalStateException
在这里合适。如果实例的构造正确,则该实例可能处于正确的状态(即“为时已晚”部分)。