Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何替换java中的系统类?_Java_Class_Oop_System - Fatal编程技术网

如何替换java中的系统类?

如何替换java中的系统类?,java,class,oop,system,Java,Class,Oop,System,一段代码执行相同的逻辑,但有两个不同的入口点。因此,对于一个入口点,它必须使用System.getProperty;对于另一个入口点,它必须使用this.getProperty。理想情况下,我希望在其中一种情况下临时方便地用此替换系统,或者反之亦然,这样我就不必重复两个不同入口点的逻辑。您可以使用this.getProperty(调用System.getProperty(根据需要使用静态方法。创建一个布尔值,useSystem作为this的字段 然后,定义this.getProperty(),如

一段代码执行相同的逻辑,但有两个不同的入口点。因此,对于一个入口点,它必须使用System.getProperty;对于另一个入口点,它必须使用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是的。谢谢。