Witam,
piszę sobie prostą aplikację w której użytkownik wybiera w Combo Box jakieś równanie arytmetyczne. Każde z tych równań ma odpowiadającą sobie metodę wyliczającą wartość tego równania. Pobieram String reprezentujący wybraną opcję i za pomocą warunków wywołuję odpowiednią funkcję. Niestety wywoływanie tej funkcji jest w pętli przez co ten sam warunek może być sprawdzany bezsensownie kilkanaście razy.
I tutaj pojawia się moje pytanie czy w Javie jest jakiś sposób aby przypisać referencję do metody, coś jak delegaty w C#?
W ten sposób po wyborze równania w Combo Boxie referencji przypisałbym odpowiednią metodę i musiałbym tylko tą delegatę wywoływać w pętli, bez ciągłego sprawdzania warunku.
Poniżej część kodu mojego programu:
public void setFunctionName(String functionName){
this.functionName = functionName;
}
public double calculateFunction(double x){
if( functionName.equals("x^2+2x"))
return Function1(x);
else if( functionName.equals("sin(x)"))
return Function2(x);
else if( functionName.equals("x^2+5x"))
return Function3(x);
else if( functionName.equals("3x^3+2"))
return Function4(x);
else if( functionName.equals("10x+2"))
return Function5(x);
else
return 0;
}
public void calculateResult(){
result = 0;
for( int i = 0; i <= degree; i++ )
result += polynomials.get(i)*calculateFunction(nodes.get(i));
}
z góry dziękuję za pomoc :)