gpt4 book ai didi

java - 类的ArrayList作为参数

转载 作者:行者123 更新时间:2023-12-02 05:33:44 25 4
gpt4 key购买 nike

StackPeople,我有一个问题。在将类插入到 ArrayList 之前,什么语句可以帮助我实现正确的类。我已声明护士和飞行员是雇员对象。我希望我的类 ArrEmp 的每个实现都存储不同的员工对象示例:arrEmpNurses、arrEmpPilots...在我的类在构造函数中获取示例之后什么说法有帮助?或者我应该重新思考这个问题。感谢您的帮助。

问题是用正确的类填充数组(它将从纯文本中读取,并通知新闻要实现什么类来添加它)

“此代码可以编译,只需复制粘贴。”

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不知道他正在读取什么Employee。我需要提供一个示例,以便它构建正确的员工,然后将其插入数组中。所以 new ArrEmp( nancy ) 读取文件并构建 Nurses 并存储它们,但 new ArrEmp( nancy ) 读取文件并在其上加载 Pilot。

编辑解决方案:基本上我将创建一个扩展 EMPLOYEE 的通用数组列表,并为每个 Emlployee 对象扩展类...

最佳答案

为什么不使用泛型?请参阅:Java generics - ArrayList initialization

基本使用

ArrayList<Nurse>

而不是 ArrayEmp(Nancy) 说它只包含护士,然后语言将负责强制执行它。

关于java - 类的ArrayList作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25250320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com