当前位置: 首页 > 面试题库 >

使用数组时发生NullPointerException

夏意蕴
2023-03-14
问题内容

我正在尝试为在线Java课程创建程序。该程序包括Employee类和Name类。我必须创建多个Employee对象,并提示用户输入员工的姓名。我将所有Employee对象存储在一个employee数组中。

这是代码

    //Creates employee array with the number of array elements being however many          
    //employees there are:
    Employee employee[] = new Employee [ numEmp ];

    for( int j = 0; j < numEmp; j++ )
    {
        System.out.println( "Please enter the first name of employee number "
                + ( j + 1 ) );
        Scanner input2 = new Scanner( System.in );
        String nameF = input2.nextLine();

        //This should set the employee object at employee array element "j" to the          
        //String nameF
        employee[ j ].setFirstName( nameF );

问题是编译器在运行程序时说最后一行是NullPointerException。我不确定自己在做什么错。有什么建议?

谢谢!-西恩


问题答案:

您创建了一个大小为的新数组numEmp,但是每个元素的默认值为null。这意味着该数组最初包含numEmp空引用。您需要先new实例化每个Employee对象,然后才能对其调用方法。

您可以在创建数组后立即执行以下操作:

Employee employee[] = new Employee [ numEmp ];
for( int j = 0; j < numEmp; j++ )
{
    employee[j] = new Employee();
}

或者,可以在您首先需要使用该对象之前,在现有循环中执行此操作:

employee[j] = new Employee();
employee[j].setFirstName(nameF);


 类似资料:
  • 我们有一个网络应用程序,它用str_replace()替换一些文本。查找字符串和替换字符串存储在模板文件中。 我们需要将str_replace()函数替换为preg_replace(),以便能够在find字符串中使用regex(在同一模板文件中设置它们)。 在原始脚本中,我们有这样的php代码部分。 在一个文件中: 类SiteConfig{ } 在另一个文件中: 我试图用preg_replace替

  • 问题内容: 我在Android Appiclation中创建CustomListAdapter。但是我在执行它时得到这个错误。 这是我的CustomListAdapter.java代码: 这是我的活动代码: 在我的活动中,已经在setAdapter()方法之前添加了CustomListAdapter实例化。但是我仍然得到那个错误。 这是我的错误日志 这是我的AppController.java 这

  • 问题内容: 当我尝试初始化eventBus时,出现NullPointerException异常: de.mrsfinster.web.livefeed.bean.FeedBean.init(FeedBean.java:179)处的java.lang.NullPointerException sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处sun

  • 问题内容: 我制作了一个250MB的json文件,看起来应该像这样: 其中“ B”值可以为len> =1。这表示我具有有效的JSON。 我打电话 这是文档。当读入熊猫数据框时,我得到以下回溯: 想不到出了什么问题。引发错误的python文件并没有帮助。 问题答案: 我有同样的错误消息,我使用绝对路径解决了。 那对我有用!

  • 问题内容: 当我尝试将Object数组强制转换为Long数组时,出现此异常。 线程“主”中的异常java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.Long; 我在hotelRooms地图中的钥匙很长,为什么无法投射。有人知道如何解决这个问题。 问题答案: 更改 至 让我知道它是否有效:-)

  • 我有一个具有这种模式的JSON文件: 家庭电话号码数组有时可能为空。 我的spark应用程序收到这些JSON的列表,并执行以下操作: 当“home”数组为空时,我在尝试爆炸它时收到以下错误: 组织。阿帕奇。火花sql。AnalysisException:由于数据类型不匹配,无法解析“[“home]”:参数2需要整数类型,但“home”是字符串类型。;; 如果这个场是空的或是空的,有没有一种优雅的方