RFR(s): 8203670: unmodifiable List iterator() implementations should not be ListIterators
Ivan Gerasimov
ivan.gerasimov at oracle.com
Mon Jun 25 23:14:08 UTC 2018
Hi Stuart!
Out of curiosity. What if someone does something like
if (it instanceof ListIterator) {
// optimized for bidirectional access
} else {
// slower algorithm
}
previous(), nextIndex() and previousIndex() methods are not declared to
be optional, so is it appropriate to throw UnsupportedOperationException
from them?
Someone may assume that if an object can be cast to ListIterator
interface, non-optional methods should not throw UOE.
With kind regards,
Ivan
On 6/25/18 3:06 PM, Stuart Marks wrote:
> Hi all,
>
> Please review this small changeset that ensures that calling
> iterator() on an unmodifiable List (from List.of, et. al.) returns an
> instance that cannot be downcast to ListIterator and used as such.
>
> Bug:
>
> https://bugs.openjdk.java.net/browse/JDK-8203670
>
> Webrev:
>
> http://cr.openjdk.java.net/~smarks/reviews/8203670/webrev.0/
>
> Thanks,
>
> s'marks
>
--
With kind regards,
Ivan Gerasimov
More information about the core-libs-dev
mailing list