以下のコードでは、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がRepositoryVet {
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'サブクラスには、これが一般的に動作するいくつかのジェネリック型があります。 –