StackPeople,我有一个问题。在将其插入ArrayList之前,用什么语句可以帮助我实现正确的类。我已经声明了Nurse和Pilot这是Employees对象。
我希望类ArrEmp的每个实现都存储不同的Employees对象
示例:arrEmpNurses,arrEmpPilots,...在我的类在构造函数中获取示例之后
什么声明有帮助?还是我应该重新考虑问题。
谢谢你的帮助。
问题是用正确的类别填充阵列(它将从纯文本和新闻中读取,并通知WHAT类别以实施添加)
“此代码可以编译,只需复制粘贴即可。”
import java.util.*;
public class ArrEmp {
String[][] data={ {"E1"}, {"Maria"}, {"E2"}, {"John"} }; //Data
Employee x;
static Nurse nancy= new Nurse("01","Nancy");//this are just examples
static Pilot peter= new Pilot("02","Peter");//so the arrayEmp knows what type of employee create
ArrayList arr;
public ArrEmp(Employee x){
this.x=x;
arr= new ArrayList();
fillList();//with data array
}
public void fillList(){// I would like to fill the List with Nurses. How could i do it?
//for( String[] param: data )
//arr.add( ) //insert helpfull statement here
//the goal is to have an array of Pilot and another of Nurses
}
public static void main(String[] args) {
ArrEmp arr1= new ArrEmp( nancy );
ArrEmp arr2= new ArrEmp( peter );
}
public static class Employee {
String cod;
public Employee(String cod){
this.cod=cod;
}
}
public static class Nurse extends Employee{
String name;
public Nurse(String ... para){
super(para[0]);
this.name=para[1];
}
}
public static class Pilot extends Employee{
String name;
public Pilot(String ... para){
super(para[0]);
this.name=para[1];
}
}
}
我之所以这样问,是因为实际上是从磁盘读取数据的,而ArrEmp不知道他要读取的是哪个员工。我需要提供一个示例,以便它构建合适的员工,然后将其插入数组。因此
new ArrEmp( nancy )
读取文件并构建Nurses并将其存储,但new ArrEmp( nancy )
读取文件并在其上加载飞行员。编辑解决方案:通常,我将创建一个通用的数组列表来扩展雇员,并扩展每个Emlployee对象的类...
最佳答案
为什么不使用泛型?参见:Java generics - ArrayList initialization
本质上使用
ArrayList<Nurse>
与其说ArrayEmp(Nancy)只包含护士,不如说它会强制执行。