【问题标题】:passing variable from random number generator class从随机数生成器类传递变量
【发布时间】:2015-12-18 16:33:59
【问题描述】:

而不是写:

 Random randomGenerator = new Random();
 for (int idx = 5; idx <= 15; ++idx){
 int randomInt = randomGenerator.nextInt(1);

每次我在函数中需要一个随机数时,是否可以将随机数生成器类的结果传递或调用到函数中?

例如,我有一个特别是从另一个类接收变量的函数

favoriteTracks(String fromExampleClass1, String fromExampleClass1again)

可以吗

favoriteTracks(String fromExampleClass1, String fromExampleClass1again, Long fromRNGclass)

澄清: 我的一个函数“favoriteTracks”需要从“ExampleClass1”传递的变量。 同时,我希望它接收一个随机数作为变量(或调用它,以最简单的为准)。由

在另一个类中生成
public static long randomNum(){
Random randomGenerator = new Random();
for (int idx = 5; idx <= 15; ++idx){
int randomInt = randomGenerator.nextInt(1);

【问题讨论】:

  • 你可以传递随机对象本身,你知道的。例如favoriteTracks(String fromClass1, String fromClass1again, Random rand)。但我不确定这是否是你要问的。
  • 为什么不用这 3 行代码(和一个 return 语句)创建一个单独的函数,并在每次需要随机数时调用它?

标签: java function class variables random


【解决方案1】:

最简单的方法是将您想要的行为封装在一个单例中:

public class MyRandom {

    public static final MyRandom myRandom = new MyRandom();

    private Random randomGenerator = new Random();

    public int makeRandom() {

        // put your for loop here if you want, but it is not necessary
        return 5 + randomGenerator.nextInt(11);
    }
}

别处...

x = MyRandom.myRandom.makeRandom();

对于您正在尝试做的事情,这看起来是一个可能的解决方案。

【讨论】:

  • 这很好,非常感谢。但我需要随机选择 5 到 15 的数字
  • 因此,您通常会生成一个介于 0 和 10 之间的数字,然后添加 5。注意 nextInt 的参数是独占的(它返回它下面的数字作为最大值)。
猜你喜欢
  • 2015-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 2020-06-29
  • 2017-06-12
  • 1970-01-01
相关资源
最近更新 更多