for (CreditCard cc : credit1)
&安培;
if (index instanceof RewardCard)
是“:”和instanceof相同?所以我可以使用?
if (index : RewardCard)
或
for (CreditCard cc instanceof credit1)
如果没有,有人可以解释“:”是什么意思吗?
答案 0 :(得分:5)
它们不相同:instanceof
检查Object的实例是否属于某种类型。 :
中的for (CreditCard cc : credit1)
是循环列表(foreach
循环)的简短方法。
答案 1 :(得分:3)
完全没有,他们完全不同。
for (.. : ..)
是for-each loop instanceof
检查运行时类型答案 2 :(得分:1)
for (CreditCard cc : credit1)
意味着
for each CreditCard IN credit1, lets call it cc and use it somehow
并且您可以使用类CreditCard,只要它与为给定集合声明的类相同。
List<Parent> list = new ArrayList<Parent>();
list.add(new Parent());
list.add(new Child());
for (Child parent : list) { // compilation error! - Type mismatch: cannot convert from element type Parent to Child
System.out.println(parent);
}
所以instanceof
和for (SomeType obj : SomeCollection)
甚至不太相似