如何在java中打印抽象类arraylist中的特定对象类型
下面的班级是我的主课。我的arraylist是“Employee”类型,该arraylist包含许多具有多个对象的元素(多态性)。所以我想知道,当用户输入类名时,我应该从arraylist打印出该特定类的雇员。例如,当用户键入“外科医生”时,程序应该能够从arraylist打印出所有外科医生员工的姓名。请帮忙,提前谢谢如何在java中打印抽象类arraylist中的特定对象类型,java,arraylist,netbeans,polymorphism,Java,Arraylist,Netbeans,Polymorphism,下面的班级是我的主课。我的arraylist是“Employee”类型,该arraylist包含许多具有多个对象的元素(多态性)。所以我想知道,当用户输入类名时,我应该从arraylist打印出该特定类的雇员。例如,当用户键入“外科医生”时,程序应该能够从arraylist打印出所有外科医生员工的姓名。请帮忙,提前谢谢 import java.util.*; public class HospitalDatabase { /** * @param args the co
import java.util.*;
public class HospitalDatabase {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String q;
String w;
ArrayList<Employee> e = new ArrayList<Employee>();
Employee s = new Surgeon("Christian Barnard", 2113211, "Cardiac", "Cardiology",
2000, "Yale University");
Employee i = new ITSupport("Mickey Mouse", 11280, Department.IT, 26, "Mac OS");
Employee n = new Nurse("Florence Nightingale", 54678, "Urgent Care",
"Emergency", false, HospitalWing.North);
Employee p = new PatientAccountsManager("Donald Duck", 32465, Department.PatientSupport,
99, true);
Employee s1 = new Surgeon("Sanjay Gupta", 42171, "Neurosurgery",
"Neurology", 500, "Duke University");
Employee n1 = new Nurse("Mary Breckinridge", 56536, "Gynecology", "Midwife",
true, HospitalWing.West);
e.add(s);
e.add(i);
e.add(n);
e.add(p);
e.add(s1);
e.add(n1);
System.out.println(e.toString());
System.out.println(Employee.numEmployees);
System.out.println("-------------******--------------");
Scanner scan = new Scanner(System.in);
System.out.println("Enter a name: ");
q = scan.nextLine();
boolean j = false;
System.out.println("***************");
for(Employee v: e){
if(v.name.contains(q)){
System.out.println(v.name);
j = true;
}
}
if(j == false){
System.out.println("Name not found");
}
System.out.println("----------------**************---------------");
Scanner f = new Scanner(System.in);
System.out.println("Enter the class of employees: ");
w = f.nextLine();
System.out.println("***************************");
//PLEASE SHOW THE CODE HERE
}
}
import java.util.*;
公立医院数据库{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
串q;
字符串w;
ArrayList e=新的ArrayList();
员工s=新外科医生(“克里斯蒂安·巴纳德”,2113211,“心脏病”,“心脏病学”,
2000年,“耶鲁大学”);
员工i=新的IT支持(“米老鼠”,11280,Department.IT,26,“Mac OS”);
员工n=新护士(“佛罗伦萨南丁格尔”,54678,“紧急护理”,
“紧急情况”,假,医院翼(北);
员工p=新的PatientCountsManager(“唐老鸭”,32465,科室。PatientSupport,
99(对);
员工s1=新外科医生(“Sanjay Gupta”,42171,“神经外科”,
“神经病学”,500页,杜克大学);
员工n1=新护士(“玛丽·布莱金里奇”,56536,“妇科”,“助产士”,
是的,医院翼(西);
e、 添加(s);
e、 加(i);
e、 添加(n);
e、 加(p);
e、 添加(s1);
e、 添加(n1);
System.out.println(例如toString());
System.out.println(Employee.numememployees);
System.out.println(“--------------------******--------------”;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入名称:”);
q=scan.nextLine();
布尔j=假;
System.out.println(“*******************”);
对于(员工v:e){
如果(v.name.contains(q)){
System.out.println(v.name);
j=真;
}
}
如果(j==false){
System.out.println(“未找到名称”);
}
System.out.println(“--------------------******************----------------”;
扫描器f=新扫描器(System.in);
System.out.println(“输入员工类别:”);
w=f.nextLine();
System.out.println(“*******************************”);
//请在这里显示代码
}
}
您可以使用来执行此操作。
例如:
String className1 = e.getClass().getSimpleName();
String className2 = e.getClass().getName();
String className3 = e.getClass().getCanonicalName();
选择一个最适合您的文章。您是否要尝试编写您的问题代码?对问题进行编码,但对实际问题不进行编码在这里对您没有多大帮助。您可以尝试operatorI实例,也希望看到您努力解决此问题。我对直接为他人编写代码不感兴趣,尤其是当答案真的不是那么难的时候。我试图提高投票率,但我需要有很高的声誉。请单击投票按钮下的“接受”。就像文章中说的:如果答案对你有帮助,你为什么不接受呢?不明白。