2013-07-10 53 views
2

一段代碼執行相同的邏輯,但有兩個不同的入口點。因此,在一個入口點的情況下它必須使用System.getProperty,而在另一個入口點的情況下它必須使用this.getProperty。理想情況下,我希望暫時和方便地用其中一種情況替換系統,反之亦然,這樣我就不必爲兩個不同的入口點重複邏輯。如何在java中替換System類?

+0

顯示代碼請 – sunrize920

+0

@ sunrize920我認爲這個問題在這種情況下足夠論壇化。 OP希望根據入口點在「系統」靜態方法和對象方法之間動態切換。 – hexafraction

+0

@hexafraction是的。謝謝。 – gal

回答

0

根據需要,您可以讓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設置爲truefalse

+0

這是一個很棒的實現,謝謝。 – gal

0

您可以使用一個簡單的if else語句:

String property = isEntryPoint ? System.getProperty() : this.getProperty(); 

假設isEntryPoint是決定其入口點是使用布爾標誌。