2013-04-02 2 views
0

Я хочу, чтобы переменные p и z получили новое случайное число, назначенное им, но при использовании кода ниже я получаю исключение NullPointerException. Раньше я делал что-то подобное, и он работал нормально, поэтому я, наверное, глупо и пропущен что-то очевидное. Любая помощь? Благодаря!Почему я не могу назначить random.nextInt переменной?

пример кода:

private int p; 
private int z; 
private Random rand; 

public test() 
{ 
    p = 0; 
    z = 0; 
} 

public void print() 
{ 
    p = rand.nextInt(9); 
    z = rand.nextInt(9); 
    System.out.println(p + " " + z); 
} 
+2

Потому что вы не инициализировали 'rand'. 'rand = new Random (666);'. –

+0

@WonkotheSane. Но здесь это не очень важно (плюс [переменные экземпляра имеют значения по умолчанию] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12. 5). –

ответ

8

Вы не инициализирован rand к чему-либо еще, так что Java инициализирует его null, за JLS 4.12.5. Попробуйте

private Random rand = new Random(); 
+0

Ничего себе, так глупо от меня! Спасибо за быстрый ответ :) –

Смежные вопросы