我正在寻找一种方法来为条件提供最快的(我的意思是零时间- 编译/类加载/JIT时间解析)可能的开/关标志。if
当然,每次应用程序运行时,此条件只会更改一次 - 在启动时。
我知道可以有条件地编译“条件编译时常量”,并且可以从代码中删除整个条件。但是,无需重新编译源代码的最快(并且可能简单)的替代方案是什么?
我可以将条件与.jar
带有条件的单个类和方法分开,我会在其中生成两个版本,.jar
并在应用程序启动时在类路径中切换这些版本?如果发现该方法为空, JIT 会单独删除对方法的调用吗?.jar
我可以通过在实现“ClassWithMyCondition”的类路径中提供两个类来做到这一点,其中一个类将具有真正的实现,而第二个类将只有空方法并通过 and 实例化其中一个Class.forName
?.newInstance()
JIT 会从我的主要中删除对空方法的调用吗?非常循环嵌套的方法?
这个问题的最简单的字节码操作解决方案是什么?