2012-07-26 102 views
-1

可能重复:
Java: What does the colon (:) operator do?的instanceof在Java

for (CreditCard cc : credit1) 

&

if (index instanceof RewardCard) 

是 “:” 和的instanceof一样吗?所以我可以使用?

if (index : RewardCard) 

for (CreditCard cc instanceof credit1) 

如果没有,可以有人解释一下 “:” 是什么意思?

+0

你尝试它是相似的? – cheeken 2012-07-26 04:00:21

回答

5

它们不一样:instanceof检查一个对象的实例是否属于某种类型。在for (CreditCard cc : credit1)中的:是通过列表循环的简短方式(foreach循环)。

3

完全不同,它们完全不同。

1
for (CreditCard cc : credit1) 

这意味着

for each CreditCard IN credit1, lets call it cc and use it somehow 

,你可以使用类信用卡式,只要它是同级申报给定收集。

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); 
    } 

所以instanceoffor (SomeType obj : SomeCollection)甚至没有接近