如何替换java中的系统类?
一段代码执行相同的逻辑,但有两个不同的入口点。因此,对于一个入口点,它必须使用System.getProperty;对于另一个入口点,它必须使用this.getProperty。理想情况下,我希望在其中一种情况下临时方便地用此替换系统,或者反之亦然,这样我就不必重复两个不同入口点的逻辑。您可以使用如何替换java中的系统类?,java,class,oop,system,Java,Class,Oop,System,一段代码执行相同的逻辑,但有两个不同的入口点。因此,对于一个入口点,它必须使用System.getProperty;对于另一个入口点,它必须使用this.getProperty。理想情况下,我希望在其中一种情况下临时方便地用此替换系统,或者反之亦然,这样我就不必重复两个不同入口点的逻辑。您可以使用this.getProperty(调用System.getProperty(根据需要使用静态方法。创建一个布尔值,useSystem作为this的字段 然后,定义this.getProperty(),如
this.getProperty(
调用System.getProperty(
根据需要使用静态方法。创建一个布尔值,useSystem
作为this
的字段
然后,定义this.getProperty(
),如下所示:
String this.getProperty(String arg){
if useSystem return System.getProperty(arg);
else{
//your logic for returning a property
}
}
获取属性时始终调用
this.getProperty(
)。根据入口点,您可以将this.useSystem
设置为true
或false您可以使用简单的if-else语句:
String property = isEntryPoint ? System.getProperty() : this.getProperty();
假设isEntryPoint是一个布尔标志,用于确定使用哪个入口点。@sunrize920我认为这个问题在这种情况下已经足够详细了。OP希望在系统
静态方法和基于入口点的对象方法之间动态切换。@Hexafrance是的。谢谢。