我需要在調用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. 預測Javascript的Math.random種子
- 3. 在Java中隨機種子Math.random
- 4. 如何重建Math.random()的種子?
- 5. 設置Math.random的參數
- 6. 當Javascript math.random方法播種
- 7. mysql爲rand設置種子
- 8. 如何設置MessageDigest種子?
- 9. Java:隨機設置種子
- 10. 傳遞種子/在R代碼中設置種子/ C
- 11. 在子域上設置TLD上的cookie
- 12. Math.random()是什麼時候播種?
- 13. 設置種子提升::隨機
- 14. 從Stata複製種子設置
- 15. 設置隨機種子的問題
- 16. 設置隨機種子獨立功能
- 17. 設置隨機種子獨立Rmath庫
- 18. 爲excel設置種子隨機數
- 19. 在按鈕中使用math.random來設置選擇選項?
- 20. 的Math.random在Java
- 21. 設置子bean上的值
- 22. 播種大量種子有什麼好的設置? (> 10000)
- 23. 在nginx上設置子域名
- 24. 如何在子頁面上設置JavaScript?
- 25. 在桌子上設置最大高度
- 26. 圖標未設置在子菜單上
- 27. 在IIS上將SmarterMail設置爲子域
- 28. 在域名/子域名上設置Cookie
- 29. dataannotations在主鍵上用代碼優先設置身份種子值
- 30. 在桌子上的桌子上設置隱藏溢出
那你能不能對你的解答的反射部分詳細說明,請價值觀? – 2012-05-21 04:51:17