如何从另一个类向ArrayList添加字段?

时间:2017-03-31 02:27:44

标签: java

我对编程很陌生,我正在构建一个程序,将组织中同一个人完成的不同工作添加到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;
 }  
 }

这是主类
    公共课主要

{
 public static void main(String[] args)
 {

  Employee walter = new Employee();
   walter.setName("Walter White");
   walter.setJob("Chemistry Teacher");//The error occurs here it says 
   //method setJob in class Employee cannot be applied to given types;

walter.setJob(“化学老师”); ^ 必需:java.util.ArrayList 发现:java.lang.String 原因:实际参数java.lang.String无法通过方法调用转换转换为java.util.ArrayList

   walter.setDepartment("Science");
  }
  }

1 个答案:

答案 0 :(得分:2)

您将job定义为ArrayList String,因此您无法使用普通字符串设置它,您必须将List传递给它。这是单向

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");