我正在做一个项目,我的程序是从文本文件中读取有关员工的某些信息(ID、名字和姓氏、可用日期、年薪等)。我创建了一个员工类,以及hashCode
和equals
方法以及所有的getter、setter、变量声明等等。
我遇到的问题是在主课上。这是我的代码:
public static void main(String[] args) throws FileNotFoundException {
ArrayList<Employee> db = new ArrayList<>();
try {
Scanner fin = new Scanner(new File("employeeDB.txt"));
} catch (FileNotFoundException e) {
System.out.println(e);
}
Scanner fin = new Scanner(new File("employeeDB.txt"));
while (fin.hasNextLine()) {
String line = fin.nextLine();
String[] fields = line.split(",", 0);
Employee emp = new Employee(Integer.parseInt(fields[0]), fields[1],
fields[2], fields[3], fields[4], Integer.parseInt(fields[5]),
Boolean.parseBoolean(fields[6]), fields[7], fields[8],
Double.parseDouble(fields[9]), fields[10]);
db.add(emp);
}
listAllEmployee(db);
System.out.println("");
listAllEmployeeEidAndName(db);
}
public static void listAllEmployee(ArrayList<Employee> list) {
System.out.println("List all employees:");
for (Employee emp : list) {
System.out.println(emp);
}
}
public static void listAllEmployeeEidAndName(ArrayList<Employee> list) {
System.out.println("List all empoyee eid and name:");
for (Employee emp : list) {
System.out.println("Employee{eid=" + emp.getEid()
+ ", firstName=" + emp.getFirstName()
+ ", lastName=" + emp.getLastName());
}
}
public static void listEmployeeByField(ArrayList<Employee> list,
int field) {
}
我不确定如何做最后一种方法。我唯一的想法是以与我为该listAllEmployeeEidAndName
方法所做的类似的方式编写一个巨大的 switch 语句,但这似乎不切实际。
有没有办法让它删除字段并只显示listEmployeeByField
调用方法时给出的字段?