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