我需要在调用Math.random()
的Java代码上编写一些junit测试。我知道如果我正在实例化我自己的Random对象以产生可重复的结果,我可以设置种子。有没有办法做到这一点也为Math.random()
?在Math.random()上设置种子
8
A
回答
12
的方法Math.random()
使用专用静态字段:
private static Random randomNumberGenerator;
如果你真的需要将其设置为一个new Random(CONSTANT_SEED)
(比如你需要,你无法控制的JUnit测试代码)你可以通过使用反射来实现。
9
如何自己创建Random
的实例并使用它? Math.random()
创建一个并使用它,所以我不认为你可以混淆它的种子。但是,如果您创建一个Random
并直接使用它,则可以在创建它时为其设置种子,并且/或者稍后可以在其上调用setSeed()
。
2
与随机的情况下与你的种子或设置它只是扩展方法,返回你需要
Field field = Math.class.getDeclaredField("randomNumberGenerator");
field.setAccessible(true);
field.set(null, new Random() {
@Override
public double nextDouble() {
return 1;
}
});
+0
随机的规范版应该返回4! – 2014-12-08 15:11:50
相关问题
- 1. 如何在Apex中设置Math.random()的种子
- 2. 如何重建Math.random()的种子?
- 3. 如何设置MessageDigest种子?
- 4. Java:随机设置种子
- 5. Math.random()是什么时候播种?
- 6. 为excel设置种子随机数
- 7. 设置种子提升::随机
- 8. 的Math.random在Java
- 9. 播种大量种子有什么好的设置? (> 10000)
- 10. 在IIS上将SmarterMail设置为子域
- 11. 在nginx上设置子域名
- 12. 如何在子页面上设置JavaScript?
- 13. 图标未设置在子菜单上
- 14. 在域名/子域名上设置Cookie
- 15. 在桌子上的桌子上设置隐藏溢出
- 16. 嗨我想用math.random设置它重复的可能性
- 17. 从math.random
- 18. Javascript Math.random()
- 19. neuralnet:ANN结果即使在设置种子后也不可重现
- 20. 是否可以在elrm包中设置种子?
- 21. Contenteditable设置在一个孩子节点上的毯子
- 22. 如何在窗口上设置HICON(多种尺寸的.ICO)?
- 23. 在设计上设置ssl
- 24. 需要某种形式设置在PHP
- 25. 设置器/吸气在一种方法
- 26. 如何设置播种
- 27. 使用Math.random
- 28. 的Math.random功能
- 29. 的Math.random()解释
- 30. Math.random()与Random.nextInt(int)
那你能不能对你的解答的反射部分详细说明,请价值观? – 2012-05-21 04:51:17