Java 向空arraylist添加类实例时遇到问题
所以我有一个Java 向空arraylist添加类实例时遇到问题,java,class,arraylist,Java,Class,Arraylist,所以我有一个任务类和一个开发类。我将任务分配给开发人员,并在开发人员中包含的ArrayList中记录分配给每个开发人员的任务。这是我在Task中的方法,将特定任务分配给特定开发人员: public void setAssignedDev(Dev dev){ this.assignedDev=dev; dev.addToTasksAssigned(this); //I get a null pointer exception on this line
任务
类和一个开发
类。我将任务分配给开发人员,并在开发人员中包含的ArrayList
中记录分配给每个开发人员的任务。这是我在Task
中的方法,将特定任务分配给特定开发人员:
public void setAssignedDev(Dev dev){
this.assignedDev=dev;
dev.addToTasksAssigned(this); //I get a null pointer exception on this line
}
从而触发Dev
中的ArrayList
来记录任务:
public void addToTasksAssigned(Task task){
this.tasksAssigned.add(task); //another null pointer exception here
//sort list by allotted start time
Collections.sort(tasksAssigned, new Comparator<Task>(){
@Override
public int compare(Task t1, Task t2){
if(t2.getAllottedStartTime()>t1.getAllottedStartTime()){return +1;}
if(t2.getAllottedStartTime()<t1.getAllottedStartTime()){return -1;}
else {return 0;}
}
});
public void addToTasksAssigned(任务){
this.tasksAssigned.add(task);//此处存在另一个空指针异常
//按分配的开始时间对列表排序
Collections.sort(tasksAssigned,new Comparator(){
@凌驾
公共整数比较(任务t1、任务t2){
if(t2.getAllottedStartTime()>t1.getAllottedStartTime()){return+1;}
如果(t2.getAllocatedStartTime()在Dev
类中,您需要为每个Dev创建任务的数组列表。然后在Dev
类的构造函数中,您可以创建列表的实例
public class Dev {
private List<Task> tasksAssigned;
public Dev() {
tasksAssigned = new ArrayList<Task>();
}
//...
}
tasksAssigned
为空或null?您是否初始化了tasksAssigned
?Integer.compare(t1.getAllocatedStartTime(),t2.getAllocatedStartTime())有什么问题吗?谢谢这个汤加-我编辑了我的原始问题,因为您的第一个提示有效。当我打印arrayList时,仍然得到空值(请参见编辑),对吗?
public class Dev {
private List<Task> tasksAssigned;
public Dev() {
tasksAssigned = new ArrayList<Task>();
}
//...
}
public class Task {
private Dev assignedDev;
public Task(String taskName, String another, float a, float b, float c, boolean d) {
//......
}
public void setAssignedDev(Dev dev){
this.assignedDev=dev;
dev.addToTasksAssigned(this);
}
}