【发布时间】:2014-06-19 06:24:22
【问题描述】:
每次我再次阅读 Java 文档时,我都会感到困惑。 所以请试着用你自己的话来帮助我。
List<Parent> list = new ArrayList<Parent>();
//Child extends Parent...
list.add(new Child());
...
...
for(Parent p: list){
if(p.getClass().isInstance(Child)){
Child c = (Child) p;
c.execFuncNonExistingInParent();
}
}
只是想证明 Objects 从 Parent 继承,以避免 Cast 问题。
if(p.getClass().isInstance(Child.class))
或
if(Child.class.isInstance(p.getClass()))
欧克尔
【问题讨论】:
-
if(p.getClass().isInstance(Child.class))或if(Child.class.isInstance(p.getClass()))是一样的。比如 (1==(2-1)) 或 ((2-1)==1) -
pClass.isInstance(child) return true 表示 child 是 pClass 的一个实例
标签: java identity proof isinstance