我刚刚发现了这个运算符,我想知道它是否可以安全使用。我的意思是,在 java 中,我们的老师总是告诉我们避免使用 instanceof(),因为它破坏了多态性并且经常显示出糟糕的编码。
提前Thks。
我刚刚发现了这个运算符,我想知道它是否可以安全使用。我的意思是,在 java 中,我们的老师总是告诉我们避免使用 instanceof(),因为它破坏了多态性并且经常显示出糟糕的编码。
提前Thks。
它是安全的'。至少使用此检查更安全,而不是仅强制转换并假定类型!您可能更喜欢使用as运算符,如果合适,它会强制转换为所需的类型,否则返回 null。只记得检查空值。
但通常,显式类型检查表明您的模型有些地方不太正确。有时这是不可避免的,但如果你经常这样做,我会退后一步,重新考虑你的模型。
if (obj is FooObject)
{
((FooObject)obj).Foo();
}
相当于
if (obj instanceof FooObject) {
((FooObject)obj).foo();
}