Семя набора на Math.random ()

Я должен записать некоторые тесты junit на коде Java, который звонит Math.random(). Я знаю, что могу установить семя, если я инстанцировал своего собственного Случайного объекта привести к повторяемым результатам. Есть ли способ сделать это также для Math.random() ?

8
задан Yu Hao 1 December 2013 в 02:54
поделиться

2 ответа

Метод Math.random () использует частное статическое поле:

private static Random randomNumberGenerator;

Если вы действительно действительно , необходимо установить его на new Random (CONSTANT_SEED) (например, вам нужен тестовый код JUNit, который вы не можете контролировать), вы можете сделать это, используя отражение .

12
ответ дан 5 December 2019 в 07:10
поделиться

Как насчет того, чтобы самому создать экземпляр Random и использовать его вместо этого? Math.random() создает один экземпляр и использует его, поэтому я не думаю, что вы можете изменять его семя. Однако, если вы создадите Random и будете использовать его напрямую, вы можете задать его семя при создании, и/или вызвать setSeed() для него позже.

9
ответ дан 5 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: