我创建了一个方法,里面要生成一个随机数,但是我要多次调用,又不希望每次都产生新的随机数对象,只想产生一个对象。求高手指点怎么做???举例,我有一个方法,叫做angle(),每次随机从0到360度返回一个均匀分布的double类型的角度值,但是都是来自于同一个random generator。不知道可不可以这样写???在成员变量里面定义一个 protected Random rng;然后在angle()方法中public angle(){
    if(this.rng==null)
     this.rng=new Random();
    
    double a=this.rng.nextDouble()*360;
    return a;}求指教

解决方案 »

  1.   

    我之前的写法是直接在方法中定义 public double angle(){
       Random rng=new Random();
       double a = rng.nextDouble()*360;
       return a;
    }所以每次调用都会产生一个对象
      

  2.   

    记得api里的说明:种子一样的话输出的结果顺序也会是一样的。所以除了要一个random的成员变量外,最好用random(seed)这个构造方法。我估计你的应用,可以用固定的seed方便调试。
      

  3.   

    可以只写一个方法,方法内部为随机生成一数,把这个方法调用赋值与一static final 变量了,这个方法只是为这个变量进行了赋值,其它地方不调用!!!!