はのは、どのように私はこのような何かをやって行くだろう汎用型とINSTANCEOF
class Animal {
}
class Dog extends Animal {
}
class Cat extends Animal {
}
class Rat extends Animal {
}
いくつかの仮定のクラスを設定してみましょうか?
List<Animal> listOfAnimals = ArrayList<Animal>();
listOfAnimals.add(new Dog);
listOfAnimals.add(new Cat);
listOfAnimals.add(new Rat);
listOfAnimals.add(new Rat);
//Return a list of animals that are the type of T
public <T> ArrayList<T> animalsOfType(T animal) {
for (Animal A : listOfAnimals) {
if (A instanceof T) {
//The current animal in the list is the type of T
}
}
}
このコードは、このように私はこれを参照するSOページ他のカップルを見て、それが可能ではないですが、私は本当に回避策を理解していないことをしました私はこの
//Returns a list of all dogs from the current list of animals
List<Dog> currentListOfDogs = animalsOfType(Dog);
をやらせるだろう彼らが示唆しているもの(hereのようなもの)。これは可能ですか?このような結果を得るためには、クラスを再構成する必要がありますか?
ありがとうございます!
...:
、あなたが呼び出すより if(A.isInstance(animal)) リストの動物が私が渡しているタイプの動物かどうかは分かりますか? –
@Adam Besmer。 –