2015-01-14 21 views
0

我有一個方法calculate(some params)if-elseif-else條件。對於每種情況,我都有一些與其他人共同的陳述。我不想重寫這些行。有沒有什麼辦法可以回憶這些線條,比如在calculate方法中使用這些線條的方法?如何在java中調用語句

calculate(some params){ 

     if(condition1){ 
      specific tast 1 ; 
      specific tast 2 ; 
      common task ; 
     }else if(condtion2){ 
      specific tast 3 ; 
      specific tast 4 ; 
      common task ; 
     }else if(condition3){ 
      specific tast 5 ; 
      specific tast 6 ; 
     }else{ 
      specific tast 7 ; 
      specific tast 8 ; 
      common task ; 
     } 

    } 

注意:通用任務不適用於每個塊。

+0

如果所有的語句都是共同的,那麼爲什麼你需要if-elseif-else?假設一些常見的代碼在那裏,你可以把它放在其他方法中,並通過你的calculate()調用它 – Prashant

+0

我說過,我有一些語句...並非全部 – Aleena

+0

如果我們看到整個代碼塊。 –

回答

2

只要把你的common task ;下來是這樣的:

calculate(some params){ 
     boolean doCommonTask = true; 
     if(condition1){ 
      specific tast 1 ; 
      specific tast 2 ; 
     }else if(condtion2){ 
      specific tast 3 ; 
      specific tast 4 ; 
     }else if(condition3){ 
      specific tast 5 ; 
      specific tast 6 ; 
      doCommonTask = false; // Skip common task 
     }else{ 
      specific tast 1 ; 
      specific tast 2 ; 
     } 
     if (doCommonTask) { 
      common task ; 
     } 

    } 
+0

我不能,因爲常見的任務並不是針對每個塊... – Aleena

+0

好吧,這個怎麼樣? –

+0

Yupp ..這可能會有所幫助...... Thnx – Aleena

0

在Java中有沒有可能性的方法中聲明的本地子範圍的方法(除非你做一個內部類一些下流的手段)。

您可以得到最接近的是在與commont語句相同的類上聲明私有方法。

或者,如果它只是幾個語句,並將它們包含在原始方法中,不會使它太大(因此可讀性較差),那麼您可以簡單地將它們放在if-else-if ... -else塊之前或者在它們之後可以將它們分組在所有塊的開始或結束處。