Избегайте новых случайных для каждого экземпляра schenanigans - PullRequest
1 голос
/ 06 ноября 2010

Попытка получить этот код с земли:


    Random random = new Random();</p>

<pre><code>public Particle(int mouseInputX, int mouseInputY, int[] RGBBounds){
    this(mouseInputX, mouseInputY, 6, 12+ random.nextInt(10),RGBBounds);

Но netbeans поддерживает то, что я не могу ссылаться на random до вызова конструктора суперкласса. Итак, я попробовал это:

<code>
        this(mouseInputX, mouseInputY, 6, 12+ new Random().nextInt(),RGBBounds);

Что работает, но я не хочу создавать новый объект Random для каждого созданного объекта частицы (производительность уже является проблемой). Как поступить?

Ответы [ 2 ]

2 голосов
/ 06 ноября 2010

В любом случае вы создаете новый Random() объект для каждого экземпляра.

Если вы не хотите, вы можете сделать это static. Но рассмотрим безопасность потоков. Взгляните на эту статью Джона Скита (плюс комментарии ниже)

1 голос
/ 06 ноября 2010

Вы можете сделать его статическим и предоставить статический синхронизированный метод для доступа к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...