在java中向instanceOf check添加其他检查
在这种情况下,我会检查一些类的实例以继续我的逻辑 例如在java中向instanceOf check添加其他检查,java,instanceof,Java,Instanceof,在这种情况下,我会检查一些类的实例以继续我的逻辑 例如 if (obj instanceof X) { result = true; } 但现在我的遗留代码中有很多地方都在使用它 我现在的问题是,只有当某个全局属性变量为true时,instanceOf才会返回true 我正在寻找替换所有这些instanceOf检查的替代解决方案,如下所示: if (GLOBALPROPERTY == true) { if (obj instanceof X) { res
if (obj instanceof X)
{
result = true;
}
但现在我的遗留代码中有很多地方都在使用它
我现在的问题是,只有当某个全局属性变量为true时,instanceOf才会返回true
我正在寻找替换所有这些instanceOf检查的替代解决方案,如下所示:
if (GLOBALPROPERTY == true)
{
if (obj instanceof X)
{
result = true;
}
}
我是否可以将此检查注入类X本身,这样,无论我在哪里检查该类的实例,它都将返回false。不,您不能
我能想到的最近的事情是使用AspectJ进行面向方面编程。但这会很棘手——首先,您可能必须从使用instanceof切换到使用适当的多态方法调用
但实际上,您可能只需要搜索并替换整个代码库。您在上面使用的所有类都有一个共同的祖先类吗,你可以只做
result=obj instanceof X
而不是if
@R.J:如果result
可能已经是true
,他不想将其重置为false
。因此,准确地说,只有当全局属性为true时,我才会加载这些类,否则将找不到这些类。因此,如果我简单地调用result=obj instanceof X,它应该抛出一个NoClassDefFoundError异常。@T.J.Crowder-如果它已经为真,那么如果和result=true,该的确切用法是什么代码>?!然而,这只是一个建议,可以帮助OP删除一些(可能的)额外代码。没有别的了。