小编Luc*_*s B的帖子

空指针异常,"尝试从空对象引用上的字段读取"

我正在创建一个应用程序,用户在其中键入任务列表,并将该列表保存到数组中.数组中的每个任务都是Assignment该类的实例.但是,我意识到在java中,在创建数组之后无法向数组添加元素.所以,我做的是创建了一个名为tasks多数空值的数组:Assignment[]tasks = {null, null, null, null, null, null, null, null, null, null, null, null};.当我想向数组添加任务时,我只需用对象替换下一个空值.但是,我还需要一个只有任务的数组,没有空值.所以我创建了一个名为full_tasks所有非空元素的数组:

for (Assignment task: tasks) {
    if (task != null) {
        realLength += 1;
    }
}

Assignment[] full_tasks = new Assignment[realLength];

for (int i=0; i <= full_tasks.length - 1; i++) {
        full_tasks[i] = new Assignment(tasks[i].name, tasks[i].days_due, tasks[i].time);
}
Run Code Online (Sandbox Code Playgroud)

所以现在,full_tasks数组应该是所有任务的数组,其中没有一个是null,对吧?但是,当我运行应用程序时,它无法启动活动,它说的错误是由空指针异常引起的:

 Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.example.lb.homeworkappv11.Assignment.name' on a null object reference
        at com.example.lb.homeworkappv11.Schedule.sortTasks(Schedule.java:64)
Run Code Online (Sandbox Code Playgroud)

错误指向的行是: …

java arrays android nullpointerexception

5
推荐指数
1
解决办法
3万
查看次数

将自定义对象数组传递给android中的另一个活动

我是 android 编程的新手,我正在尝试将一组自定义对象发送到不同的活动。在第一个活动中,我有一个创建意图并向其添加对象数组的函数:

public void openSchedule() {
    Intent nextScreen = new Intent(getApplicationContext(), Schedule.class);
    nextScreen.putExtra("array", tasks);
    startActivity(nextScreen);
}
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何在下一个屏幕上获取该数据。

即使“任务”是一个自定义对象数组,有没有办法在下一个活动的代码中获取该数组?

java arrays android

0
推荐指数
1
解决办法
5391
查看次数

标签 统计

android ×2

arrays ×2

java ×2

nullpointerexception ×1