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)只包含护士,不如说它会强制执行。

10-04 14:23