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返回当天的价格和货币