【发布时间】:2013-10-27 11:03:59
【问题描述】:
我有一种情况,我检查一些类的 instanceOf 以继续我的逻辑。
例如。
if (obj instanceof X)
{
result = true;
}
但是现在我的遗留代码中的很多地方都在使用它。
我的问题是这个 instanceOf 现在只有在某些全局属性变量为真时才应该返回真。
我正在寻找一种替代解决方案来替换所有这些 instanceOf 检查,如下所示:
if (GLOBALPROPERTY == true)
{
if (obj instanceof X)
{
result = true;
}
}
我可以在类 X 本身中注入这个检查,这样,无论我检查 instanceOf 这个类,它都会返回 false。
【问题讨论】:
-
你使用它的所有类都有一个共同的祖先类吗?
-
另外,您也可以使用
result = obj instanceof X而不是if。 -
@R.J:如果
result可能已经是true并且他不希望它重置为false,则不会。 -
所以准确地说,只有当全局属性为true时,我才会加载这些类,否则将找不到这些类。所以如果我简单地调用 result = obj instanceof X,它应该会抛出 NoClassDefFoundError 异常。
-
@T.J.Crowder - 如果它已经是真的,那么
if和result = true;的确切用途是什么?!尽管如此,这只是一个建议,可以帮助 OP 删除一些(可能的)额外代码。没有别的了。
标签: java instanceof