构造函数Random()不可见

时间:2010-12-14 04:18:14

标签: java gwt

我正在创建一个gwt应用程序。我在下面的方法中得到错误“构造函数Random()不可见”。我也尝试将它放在主onModuleLoad()中。

public void jump(){
 Random generator = new Random();
}

我通过以下

随机导入
import com.google.gwt.user.client.Random;

无论我把它放在哪里,我仍然会收到这个错误。

由于

2 个答案:

答案 0 :(得分:5)

不要实例化它。相反,在类上调用静态方法:

Random.nextInt(...)

答案 1 :(得分:0)

com.google.gwt.user.client.Random类没有公共构造函数,并且它的所有方法都是静态的。 javadoc说:

  

此类可用作java.util.Random的替代。语义不同之处在于使用了底层浏览器的实现。随机生成器不能被播种或以其他方式用于再现特定的结果序列。

我怀疑这种设计的原因(即静态方法和没有公共构造函数)是GWT Random类实际上只是ECMAScript函数Math.random()的一个皮肤,它是一个静态功能,无法播种。

我想使用java.util.Random是另一种选择,但我不相信它能够从浏览器端的熵源中获取种子。