Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查子类的类型?_Java_Class_Inheritance - Fatal编程技术网

Java 如何检查子类的类型?

Java 如何检查子类的类型?,java,class,inheritance,Java,Class,Inheritance,我想检查Java中子类的类型。下面是我想要实现的伪代码: public class Brown { ... } class Poo extends Brown { ... } class Brownie extends Brown { ... } ... ArrayList<Brown> brownThings = new ArrayList<Brown>(); ... for (Brown i: brownThings) // if i is a brown

我想检查Java中子类的类型。下面是我想要实现的伪代码:

public class Brown { ... }
class Poo extends Brown { ... }
class Brownie extends Brown { ... }
...

ArrayList<Brown> brownThings = new ArrayList<Brown>();
...

for (Brown i: brownThings)
    // if i is a brownie eat
    // else dispose of
公共类布朗{…}
类Poo扩展了Brown{…}
类Brownie扩展了Brown{…}
...
ArrayList brownThings=新的ArrayList();
...
对于(棕色i:棕色)
//如果我是布朗尼,吃吧
//否则处置

您可以使用关键字的instanceof

if (i instanceof Brownie ) {
    // do something
  }

这正好检查了实例类型

您可以使用关键字instanceof

if (i instanceof Brownie ) {
    // do something
  }
这正好检查了实例类型

这应该可以:

for (Brown i: brownThings) {
    if (i instanceof Brownie) {
        //eat
    }
}
这应该做到:

for (Brown i: brownThings) {
    if (i instanceof Brownie) {
        //eat
    }
}

您可以使用
instaceof
操作符。例如:

if (i instanceof Brownie) {
  eat(i);
} else {
  dispose(i);
}
instaceof
操作或检查对象的类型是类的实例还是扩展或实现指定类型的类


您可以在中阅读更多内容。另请参见问题。

您可以使用
instaceof
操作员。例如:

if (i instanceof Brownie) {
  eat(i);
} else {
  dispose(i);
}
instaceof
操作或检查对象的类型是类的实例还是扩展或实现指定类型的类


您可以在中阅读更多内容。另见问题。

我想它想检查它是不是一个布朗尼而不是一个便便。你不需要检查,列表中的所有东西都是
Brownie
,那么:),因为每个
Child
都是
Parent
列表中的所有东西都是Brownie而不是Brownie(Brown的一个子类)Oops..Oops,对不起。编辑。我想它想检查它是否是一个布朗尼而不是一个便便。你不需要检查,列表中的所有内容都是
Brownie
,那么:),因为每个
Child
都是
Parent
列表中的所有内容都是Brownie而不是Brownie(Brown的子类)Oops..Oops,对不起。编辑。