试图让这些代码落地:
Random random = new Random();
public Particle(int mouseInputX, int mouseInputY, int[] RGBBounds){
this(mouseInputX, mouseInputY, 6, 12+ random.nextInt(10),RGBBounds);
但netbeans支持在调用超类构造函数之前我无法引用随机数。所以我尝试了这个:
public Particle(int mouseInputX, int mouseInputY, int[] RGBBounds){
this(mouseInputX, mouseInputY, 6, 12+ random.nextInt(10),RGBBounds);
哪个有效,但我不想为每个粒子对象创建一个新的Random对象(性能已经是一个问题)。怎么办?
答案 0 :(得分:2)
无论哪种方式,您都要为每个实例创建一个新的Random()
对象。
如果您不想,可以将其设为static
。但考虑线程安全。请查看this article by Jon Skeet(以及下面的评论)
答案 1 :(得分:1)
您可以将其设置为静态并提供静态同步方法来访问它。