2013-04-02 110 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

哇,太笨了!謝謝你的回覆:) –

相關問題