Task
类用于描述企业的任务,其中包括以下变量:日期,描述,任务将要完成的总小时数以及任务的所有者。
为名为task的所有任务创建一个ArrayList
。问题是一个任务可以有多个所有者,这意味着创建一个名为所有者的变量将无法工作,所以我要做的是创建了另一个名为TaskOwner
的类并将该类实现为名为taskOwner的ArrayList
在Task
类中。
现在解决问题:您应该能够按特定所有者列出任务:这意味着您需要将所有者与您在键盘上输入的名称进行比较。
问题在于这些代码行:
System.out.println("What name of owner do you want to list tasks for: ");
String nameOfOwner = keyboard.nextLine();
if (nameOfOwner.toLowerCase().equals(tasks.get(1).getTaskOwner().getName().toLowerCase())) {
System.out.println(tasks.get(1));
}
即使为所需的所有内容创建了吸气剂,我似乎也无法访问类
TaskOwner
中名为name的变量,所以有人知道我应该如何访问此信息吗?我收到的错误消息是:
对于ArrayList类型,未定义方法getName()
最佳答案
getTaskOwner
似乎返回类型为ArrayList
而不是TaskOwner
的对象(这就是错误消息所指示的内容)。换句话说,它返回所有者列表。要调用getName()
方法,您需要遍历此列表,并在与TaskOwner
实例相对应的每个元素上调用该方法。
System.out.println("What name of owner do you want to list tasks for: ");
String nameOfOwner = keyboard.nextLine();
for(int i = 0; i < tasks.size(); i++) {
List<TaskOwner> owners = tasks.get(i).getTaskOwner();
for(TaskOwner owner : owners) {
if (nameOfOwner.toLowerCase().equals(owner.getName().toLowerCase())) {
System.out.println(tasks.get(i));
break;
}
}
}
关于java - 在类内部访问ArrayList的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27658516/