Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从其他类向ArrayList添加字段?_Java - Fatal编程技术网

Java 如何从其他类向ArrayList添加字段?

Java 如何从其他类向ArrayList添加字段?,java,Java,我对编程非常陌生,我正在构建一个程序,将组织中同一个人完成的不同工作添加到ArrayList中 我试图在ArrayList中添加两个以上的主类职位,但我一直遇到一个错误,请您指导我正确的方向好吗 import java.util.ArrayList; public class Employee { private String name; private String department;

我对编程非常陌生,我正在构建一个程序,将组织中同一个人完成的不同工作添加到ArrayList中

我试图在ArrayList中添加两个以上的主类职位,但我一直遇到一个错误,请您指导我正确的方向好吗

import java.util.ArrayList;                                                 
public class Employee
{
 private String name;
  private String department;


  private ArrayList<String>job = new ArrayList();

 public void setJob(ArrayList<String> job)
  {
  this.job =job;
 }  

 public ArrayList<String> getJob()
 {
   return job;
 }  
 }
沃尔特·塞特约布(“化学老师”); ^ 必需:java.util.ArrayList 找到:java.lang.String 原因:无法通过方法调用转换将实际参数java.lang.String转换为java.util.ArrayList

   walter.setDepartment("Science");
  }
  }

您将
job
定义为
String
ArrayList
,因此不能用普通字符串设置它,您必须向它传递一个列表。以下是一种方法:

walter.setJob(Arrays.asList(new String("Chemistry Teacher")));
或者用@Daedalus建议的较少的语言方式

walter.setJob(Arrays.asList("Chemistry Teacher"));
如果你的要求是一个员工有很多工作,那么将其定义为一个列表并没有什么错。更优雅的方法是遵循上面评论中@HovercraftFullOfEels的建议,但既然你是新手,你应该知道这本身并没有错

他的建议是,您可以使用一种方法将作业添加到现有列表中,以便:

public void addJob(String jobName){
    job.add(jobName);
}
然后你会使用:

 walter.addJob("Chemistry Teacher");

等待为什么
setJob(…)
方法采用ArrayList?为什么作业字段是数组列表?
walter.getJob().add(“化学教师”)我不同意@ElliottFrisch的解决方案,因为它不必要地公开了类的字段。相反,我继续建议我上面提到的内容——给你的类一个
addJob(String job)
方法,在它的主体中将字符串添加到ArrayList中。@hoverCraftfullOfels我根据OP的现有代码添加了我的注释。使用
addJob(String)
将更多内容从注释转换为答案。但OP真的应该详细说明员工和工作(以及部门)之间的理想关系。最初的海报,不要接受那个糟糕的答案,pleasenew String(“化学老师”)可以写成“化学老师”,除了这个答案对我来说很好。
 walter.addJob("Chemistry Teacher");