假设我有两个类是从第三个抽象类派生的:

public abstract class Parent{
    public Parent(){
    }
}

public class ChildA extends Parent {
    public ChildA {
    }
}

public class ChildB extends Parent {
    public ChildB {
    }
}

在C#中,我可以通过以下方式以某种类型安全的方式处理转换:
ChildA child = obj as ChildA;

如果这不是ChildA类型的对象,它将使child == null。如果我要这样做:
ChildA child = (ChildA)obj;

...在C#中,如果类型不正确,则会抛出异常。

因此,基本上,有没有办法在Java中进行第一种类型的转换?谢谢。

最佳答案

我想不出语言本身的方式,但是您可以像这样轻松地模拟它:

ChildA child = (obj instanceof ChildA ? (ChildA)obj : null);

08-17 15:21