- documentation of "bound" should mention that it is exclusive rather than
relying on the return documentation.
- I find disallowing the zero bounds and empty ranges slightly annoying. It
requires me to externally special case for situations such as:
Random ran = new Random();
String[] users = {"Fred"};
someUser = users[mine.nextInt(users.length - 1)];
This is a frequently used idiom. Yes, forcing the random number generator to
return zero is silly but for symmetry it is convenient. An empty range isn't an
obvious error (though the "String[] users = {};" case is obviously an error).
On Aug 19 2013, at 04:07 , Paul Sandoz wrote:
> Hi,
>
> This patch updates Random and ThreadLocalRandom to have functional
> consistency (for the most part) across Random, ThreadLocalRandom and
> SplittableRandom:
>
> http://cr.openjdk.java.net/~psandoz/tl/JDK-8023155-Random-TLR-SR-sync/webrev/
>
>
> http://cr.openjdk.java.net/~psandoz/tl/JDK-8023155-Random-TLR-SR-sync/specdiff/overview-summary.html
>
> I have yet to define a common interface e.g. RandomGenerator that Random,
> ThreadLocalRandom and SplittableRandom could implement, but it would be very
> easy to do so. Any thoughts on doing this?
Seems worthwhile.
Mike