아래 수업은 나의 주요 수업입니다. 내 arraylist는 "Employee"유형이며 해당 arraylist에는 여러 개체 (다형성)로 구성된 많은 요소가 포함되어 있습니다. 따라서 사용자가 클래스 이름을 입력하면 배열 목록에서 해당 클래스의 직원을 인쇄해야한다는 것을 알고 싶습니다. 예를 들어, 사용자가 "Surgeon"을 입력하면 프로그램은 배열 목록에서 모든 외과 의사 직원을 인쇄 할 수 있어야합니다. 미리 감사드립니다.
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
}
}
이를 위해 Reflection API 를 사용할 수 있습니다 . 예를 들면 :
String className1 = e.getClass().getSimpleName();
String className2 = e.getClass().getName();
String className3 = e.getClass().getCanonicalName();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다