Java 如何检查子类的类型?
我想检查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
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,对不起。编辑。