我有一个存储不同哺乳动物的阵列,存储在哺乳动物阵列中的物体是狗,猫等我用这段代码创建的:
Mammals obj = new Cats();
Mammals obj = new Dogs();
etc....
现在我想从数组中移出一个特定的对象,只是打印出来。假设我想从这个printCat方法打印出一个cat对象 - 如何修改下面的代码,以确保只有cat对象被洗牌?
public static void printCat() {
Mammals item;
int index = shuffleArray.nextInt(mammals.size());
item = mammals.get(index);
System.out.println(item);
}
答案 0 :(得分:1)
public static void printCat() {
Mammal result;
do
{
int index = shuffleArray.nextInt(mammals.size());
result = mammals.get(index);
} while (!(result instanceof Cat));
System.out.println(result);
}
警告的一句话......确保哺乳动物收集品在运行之前包含一只猫,否则你将陷入无限循环。你也可以考虑修改它,这样你就不会多次选择相同的哺乳动物。
答案 1 :(得分:0)
您可以使用:
if(item instanceof Cat){
System.out.println(item);
}else{
//it is not cat
}