ArrayList에 하위 클래스 속성이 표시되는 데 문제가 있습니다.ArrayList가 서브 클래스 변수를 인식하지 못합니다.
여기 내 코드의 주요 부분에 대한 설명이 나와 있습니다.
private ArrayList<Person> people = new ArrayList<Person>;
abstract class Person {
String fName;
String lName;
}
public class Employee extends Person {
protected int empID;
}
public class Client extends Person {
protected int clientID;
}
된 ClientID별로 검색 루프를 사용하는 경우, 내가
Enterprise.java:134 무엇입니까 : 기호를 찾을 수 없습니다 기호 : 변수 clientid는 위치 : Person 클래스
내가 시도 with 루프에 instanceof 클라이언트가 있거나없는 경우. for 루프 매개 변수에서 Person 대신 Client를 사용하려고 시도했습니다.
for(Person x : people) {
if(x.clientID == cid) {
System.out.println(x);
}
이러한 클래스를 하위 클래스로 바꾸기 전에 해당 클래스를 자신의 종류의 ArrayList에 넣었으며 모든 것이 완벽하게 작동했습니다.
도움이 될 것입니다.
사람들 목록에 Client 인스턴스 만 포함되어 있습니까? 그렇지 않으면 오류가 발생합니다. 나는 또한'x.clientID'를 시도하기 전에'x'를'Client'로 던지지 않는 한 당신이 올린 코드가 어떻게 컴파일되는지를 보지 못합니다.'((Client) x) .clientID == cid'와 같은 것 –