2015-11-02 67 views
1

我意識到這是一個常見的錯誤,我試圖用其他問題來解決它關於這個確切的錯誤,但是我無法想出一個解決方案。我製作了10輛汽車,並設定每輛汽車的品牌,顏色和年份。 getter和setter方法在另一個名爲「Car」的類中。我不確定哪裏設置爲空。預先感謝您的任何幫助。Java:(錯誤)線程「main」java.lang.NullPointerException異常在Main.main(Main.java:14)

錯誤:異常在線程「主」顯示java.lang.NullPointerException 在Main.main(Main.java:14)

import java.util.Random; 

public class Main { 

public static void main(String[] args) { 

    //Array of 10 cars 
    Car[] cars; 
    cars = new Car[10]; 

    //Assign random colors and makes of my choice 
    cars[0].setMake("Toyota"); 
    cars[1].setMake("Kia"); 
    cars[2].setMake("Porsche"); 
    cars[3].setMake("Ferrari"); 
    cars[4].setMake("Honda"); 
    cars[5].setMake("Jaguar"); 
    cars[6].setMake("Lexus"); 
    cars[7].setMake("Nissan"); 
    cars[8].setMake("BMW"); 
    cars[9].setMake("Tesla"); 

    cars[0].setColor("Black"); 
    cars[1].setColor("Green"); 
    cars[2].setColor("Silver"); 
    cars[3].setColor("Red"); 
    cars[4].setColor("Yellow"); 
    cars[5].setColor("White"); 
    cars[6].setColor("Blue"); 
    cars[7].setColor("Orange"); 
    cars[8].setColor("Purple"); 
    cars[9].setColor("Gold"); 

    //Randomly selected years for the cars 
    int maxYear = 2015; 
    int minYear = 2010; 
    int maxYear2 = 2009; 
    int minYear2 = 1990; 

    Random r = new Random(1234); 
    cars[0].setYear(r.nextInt(maxYear - minYear + 1) + minYear); 
    cars[1].setYear(r.nextInt(maxYear - minYear + 1) + minYear); 
    cars[2].setYear(r.nextInt(maxYear - minYear + 1) + minYear); 
    cars[3].setYear(r.nextInt(maxYear - minYear + 1) + minYear); 
    cars[4].setYear(r.nextInt(maxYear - minYear + 1) + minYear); 
    cars[5].setYear(r.nextInt(maxYear2 - minYear2 + 1) + minYear2); 
    cars[6].setYear(r.nextInt(maxYear2 - minYear2 + 1) + minYear2); 
    cars[7].setYear(r.nextInt(maxYear2 - minYear2 + 1) + minYear2); 
    cars[8].setYear(r.nextInt(maxYear2 - minYear2 + 1) + minYear2); 
    cars[9].setYear(r.nextInt(maxYear2 - minYear2 + 1) + minYear2); 

} 

} 
+0

使用調試器... – redFIVE

回答

7

初始化對象不初始化對象的數組包含在數組中因此你會得到NullPointerException。

在嘗試這樣做:

cars[0].setMake("Toyota"); 

你應該首先初始化Car對象是這樣的:

cars[0] = new Car(); // or use any other appropriate constructor 

同樣適用於你的對象的其餘部分在數組中。

+0

@ D.Khan我的答案已經回答你的問題,仔細閱讀。 –

相關問題