2015-04-30 33 views
-3

我有一個公開的方法,我想從其中將雙變量傳遞給我的主要方法,我再次調用它們:如何從java中的公共方法返回多個雙重類型變量?

(在實際代碼中,公用方法被多次調用並且需要相同的值回到我有在公衆方法返回多個變量的麻煩,那麼我不知道我應該怎麼稱呼這些變量在main方法調用者)

public double ReturnDoubleVariables() 
    { 
    double ret1 promptUserForInput("1st Varaible",); 
    double ret2 promptUserForInput("2nd Varaible",); 
    double ret3 promptUserForInput("3rd Varaible",); 
    double ret4 promptUserForInput("4th Varaible",); 
    double ret5 promptUserForInput("5th Varaible",) 

    return (ret1, ret2,...,ret5); 
    } 


    private void execute0() { 

    Simulation simulation_0 = getActiveSimulation(); 
     scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret1); 

     scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret2); 

     scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret3); 

     scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret4); 

     scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret5); 

    } 

在此先感謝

回答

3

你可以返回一個數組:

public double[] ReturnDoubleVariables() 
{ 
    double ret1 = promptUserForInput("1st Varaible",); 
    double ret2 = promptUserForInput("2nd Varaible",); 
    double ret3 = promptUserForInput("3rd Varaible",); 
    double ret4 = promptUserForInput("4th Varaible",); 
    double ret5 = promptUserForInput("5th Varaible",) 

    return new double[]{ret1, ret2, ret3, ret4, ret5}; 
    } 

或:

public double[] ReturnDoubleVariables() 
{ 
    double[] ret = new double[5]; 
    ret[0] = promptUserForInput("1st Varaible",); 
    ret[1] = promptUserForInput("2nd Varaible",); 
    ret[2] = promptUserForInput("3rd Varaible",); 
    ret[3] = promptUserForInput("4th Varaible",); 
    ret[4] = promptUserForInput("5th Varaible",) 

    return ret; 
    } 
+0

嗨葉蘭謝謝你的帖子..它回答了我的第一個問題。但是我不能在主要方法中調用這些變量..你能爲此提出一些建議嗎? –

1

你可以返回一個double[]

public double[] ReturnDoubleVariables() { 
    return new double[] { promptUserForInput("1st Varaible"), 
      promptUserForInput("2nd Varaible"), 
      promptUserForInput("3rd Varaible"), 
      promptUserForInput("4th Varaible"), 
      promptUserForInput("5th Varaible") }; 
} 

而且, Java方法名稱以小寫字母開頭(按慣例),因此上面應該是returnDoubleVariables

2

您可以返回Double值的列表:

public List<Double> ReturnDoubleVariables() 
    { 
    double ret1=promptUserForInput("1st Varaible",); 
    double ret2=promptUserForInput("2nd Varaible",); 
    double ret3=promptUserForInput("3rd Varaible",); 
    double ret4=promptUserForInput("4th Varaible",); 
    double ret5=promptUserForInput("5th Varaible",) 
    List<Double> list = new ArrayList<Double>(); 
    list.add(ret1);  
    list.add(ret2); 
    ... 
    list.add(ret5); 
    return list; 
    } 

或者你可以爲reurn值創建一個類:

public class RetDouble{ 
    private double ret1; 
    private double ret2; 
    ... 
    private double ret5; 
    //getter and setter; 
} 
public RetDouble ReturnDoubleVariables() 
    { 
    double ret1=promptUserForInput("1st Varaible",); 
    double ret2=promptUserForInput("2nd Varaible",); 
    double ret3=promptUserForInput("3rd Varaible",); 
    double ret4=promptUserForInput("4th Varaible",); 
    double ret5=promptUserForInput("5th Varaible",); 

    RetDouble r = new RetDouble(); 
    r.setRet1(ret1); 
    r.setRet2(ret2); 
    ... 
    r.setRet5(ret5); 
    return r; 
    } 
+0

您好Jens非常感謝您的回答..該方法適用於我。然而,我不能把這個方法返回的變量調用到我的主要方法中。你能告訴我應該怎麼做嗎? –

+0

@Javisience你的意思是哪一個。第一還是第二? – Jens

+0

@Javisience抱歉,但我不能讓你。 – Jens

1

捆綁在一起,並在一個對象,最好是List<Double>(除非你事先知道你想返回多少,然後使用一個簡單的數組)。

列表示例

public List<Double> ReturnDoubleVariables() { 

    List<Double> list = new ArrayList<Double>(); 

    //consider looping instead... 
    list.add(promptUserForInput("1st Varaible",)); 
    list.add(promptUserForInput("2nd Varaible",)); 
    list.add(promptUserForInput("3rd Varaible",)); 
    list.add(promptUserForInput("4th Varaible",)); 
    list.add(promptUserForInput("5th Varaible",)); 

    return list; 

}

陣列實施例

public double[] ReturnDoubleVariables() { 

    double[] arr = new double[5]; 

    //consider looping instead... 
    arr[0] = list.add(promptUserForInput("1st Varaible",); 
    arr[1] = promptUserForInput("2nd Varaible",); 
    arr[2] = promptUserForInput("3rd Varaible",); 
    arr[3] = promptUserForInput("4th Varaible",); 
    arr[4] = promptUserForInput("5th Varaible",); 

    return arr; 

}

0

Array返回它,或使用收藏喜歡ListArrayList,LinkedList),Sets

public double[] ReturnDoubleVariables() { 
return new double[] { promptUserForInput("1st Varaible"), 
     promptUserForInput("2nd Varaible"), 
     promptUserForInput("3rd Varaible"), 
     promptUserForInput("4th Varaible"), 
     promptUserForInput("5th Varaible") }; 

}

public ArrayList<Double> ReturnDoubleVariables() { 
ArrayList<Double> destinationArray = new ArrayList<Double>(); 
destinationArray.add("1st Varaible") 
destinationArray.add("2nd Varaible"); 
destinationArray.add("3rd Varaible"); 
return destinationArrayList; 

}