如何在java中回忆语句

时间:2015-01-14 19:06:41

标签: java recursion

我的方法calculate(some params)if-elseif-else个条件。对于每种情况,我都有一些与其他人共同的陈述。我不想重写那些台词。有没有办法回忆这些行,比如在calculate方法中制作这些行的方法?

  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 ; 
        }

     }

注意:常见任务不适用于每个块。

2 个答案:

答案 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 ; 
        }

     }

答案 1 :(得分:0)

在Java中,不可能在方法中声明本地子范围方法(除非你用内部类做一些讨厌的技巧)。

最接近的是使用那些commont语句在同一个类上声明一个私有方法。

或者如果它只是一些语句并且在原始方法中包含它们不会使它太大(因此可读性较差)那么你可以简单地将它们放在if-else-if ... -else块之前或者在它之后,这些可以在所有块的开头或结尾分组。