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