java中的instanceof

时间:2012-07-26 03:58:12

标签: java instanceof

  

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

for (CreditCard cc : credit1)

&安培;

if (index instanceof RewardCard)

是“:”和instanceof相同?所以我可以使用?

if (index : RewardCard)

for (CreditCard cc instanceof credit1)

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

3 个答案:

答案 0 :(得分:5)

它们不相同:instanceof检查Object的实例是否属于某种类型。 :中的for (CreditCard cc : credit1)是循环列表(foreach循环)的简短方法。

答案 1 :(得分:3)

完全没有,他们完全不同。

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

所以instanceoffor (SomeType obj : SomeCollection)甚至不太相似