Java 有没有一种不重复三次的更短的方法来编写这段代码?
有没有更好(更短)的方法来编写此代码?谢谢Java 有没有一种不重复三次的更短的方法来编写这段代码?,java,switch-statement,Java,Switch Statement,有没有更好(更短)的方法来编写此代码?谢谢 public double getPrice(int day, String currency) throws SecurityException{ if(currency.toLowerCase().equals(PriceItem.GBP)){ switch(day){ case 1: return getDay1Gbp(); case 2: return getD
public double getPrice(int day, String currency) throws SecurityException{
if(currency.toLowerCase().equals(PriceItem.GBP)){
switch(day){
case 1: return getDay1Gbp();
case 2: return getDay2Gbp();
case 3: return getDay3Gbp();
case 4: return getDay4Gbp();
case 5: return getDay5Gbp();
case 6: return getDay6Gbp();
case 7: return getDay7Gbp();
case 8: return getDay8Gbp();
case 9: return getDay9Gbp();
case 10: return getDay10Gbp();
case 11: return getDay11Gbp();
case 12: return getDay12Gbp();
case 13: return getDay13Gbp();
case 14: return getDay14Gbp();
default: return 0.;
}
} else if(currency.toLowerCase().equals(PriceItem.EUR)){
switch(day){
case 1: return getDay1Eur();
case 2: return getDay2Eur();
case 3: return getDay3Eur();
case 4: return getDay4Eur();
case 5: return getDay5Eur();
case 6: return getDay6Eur();
case 7: return getDay7Eur();
case 8: return getDay8Eur();
case 9: return getDay9Eur();
case 10: return getDay10Eur();
case 11: return getDay11Eur();
case 12: return getDay12Eur();
case 13: return getDay13Eur();
case 14: return getDay14Eur();
default: return 0.;
}
} else if(currency.toLowerCase().equals(PriceItem.USD)){
switch(day){
case 1: return getDay1Usd();
case 2: return getDay2Usd();
case 3: return getDay3Usd();
case 4: return getDay4Usd();
case 5: return getDay5Usd();
case 6: return getDay6Usd();
case 7: return getDay7Usd();
case 8: return getDay8Usd();
case 9: return getDay9Usd();
case 10: return getDay10Usd();
case 11: return getDay11Usd();
case 12: return getDay12Usd();
case 13: return getDay13Usd();
case 14: return getDay14Usd();
default: return 0.;
}
}
return 0.;
}
我试图在不重复三次switch的情况下编写此代码,但我不知道如何编写更短的代码。如果我关注参数,可能返回方法。我不知道这个主意是否可行。谢谢你的建议我找到了问题的答案
Field field = this.getClass().getDeclaredField(nameOfField);
return (Double) field.get(this);
不鼓励将代码粘贴为图像。在这里添加代码,并进一步解释您试图实现的目标。当我添加代码时,图片显示:看起来您的帖子主要是代码;请添加更多详细信息您可以使用
地图Q:更好的方法?A:是的。问:更短?A:也许吧。那些getDayNxxx
方法做什么?getDaysNxxx返回当天的价格和货币