2015-11-02 79 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我的答案已经回答你的问题,仔细阅读。 –

相关问题