【问题标题】:instanceof in java [duplicate]java中的instanceof [重复]
【发布时间】:2012-07-24 14:48:27
【问题描述】:

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

for (CreditCard cc : credit1)

&

if (index instanceof RewardCard)

“:”和instanceof一样吗?这样我可以用吗?

if (index : RewardCard)

for (CreditCard cc instanceof credit1)

如果不是,谁能解释一下“:”是什么意思?

【问题讨论】:

    标签: java instanceof


    【解决方案1】:

    它们不一样:instanceof 检查 Object 的实例是否属于某种类型。 for (CreditCard cc : credit1) 中的 : 是一种循环列表的快捷方式(foreach 循环)。

    【讨论】:

      【解决方案2】:

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

      • for (.. : ..)for-each loop
      • instanceof 检查运行时类型

      【讨论】:

        【解决方案3】:
        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) 甚至不相似

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-08-29
          • 1970-01-01
          • 2011-11-23
          • 1970-01-01
          • 1970-01-01
          • 2016-04-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多