아래 코드에서 instanceof
을 사용하여 저장소 유형을 알기를 원하지 않습니다. 형식을 가져 오는 유일한 방법입니까? 와일드 카드 RepositoryVet<?>
을 사용하여 유형을 알 수 있습니까? 이렇게하면 많은 테스트를 할 수 있습니다. "instanceof"를 사용하지 않는 와일드 카드 객체 유형
public ArrayList<String> rechercherTabTailles(String sexe,String SI,RepositoryVet<?> repository) {
ArrayList<String> tabTailles;
repository.Open();
repository.rechercherspin(sexe);
if (SI.compareTo("US") == 0) {
if (repository instanceof ChaussureRepository)
tabTailles= ((ChaussureRepository) repository).taillesUS;
if (repository instanceof ChemiseRepository)
tabTailles= ((ChemiseRepository) repository).taillesUS;
}
}
내 질문을 완료하려면 : RepositoryVet 이미 다음과 같이 정의 된 abstractClass입니다 :
공공 추상 클래스 RepositoryVet이 IRepositoryVet 구현 {
public ArrayList<String> taillesEU;
public ArrayList<String> taillesUS;
public ArrayList<String> taillesUK;
public ArrayList<String> taillesIT;
public ArrayList<String> taillesJP;
public ArrayList<String> taillescm;
public ArrayList<String> taillesinch;
등 .... }
그리고 "ChaussureRepository"는 RepositoryVet을 다음과 같이 확장 한 클래스입니다 :
공용 클래스 ChaussureRepository는 {
public ArrayList<String> taillesEU;
public ArrayList<String> taillesUS;
public ArrayList<String> taillesUK;
public ArrayList<String> taillesIT;
public ArrayList<String> taillesJP;
public ArrayList<String> taillescm;
public ArrayList<String> taillesinch;
등 ....
을 무엇. – Alp
'RepositoryVet' ('instanceof'를 사용하여 테스트 할 수있는)의 서브 클래스는'RepositoryVet'의 타입 매개 변수와 (직접적으로) 관련이 없습니다. –
'repository' 서브 클래스를 사용하는 것이 더 일반적입니다. –