假设我有两个类是从第三个抽象类派生的:
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);