当返回类型是动态时,如何避免太多的if条件?
我知道,如果条件和值是静态的,我们可以创建一个带有键和值的哈希图,避免太多 if 条件。
在下面的示例中,每个月的价格因客户而异客户。。。我需要为相同的语句添加 12 个 if 语句...假设该字段不是
月份...他们我最终可能会得到超过 100 或 200 个如果......例如:一年...1900 到 2000
Example,
public String getPrice(int Month) {
String price = "";
switch (month) {
case 1:
price = customerTable.getJanPrice();
break;
case 2:
price = customerTable.getFebPrice();
break;
...........
}
return price;
}
你能帮我提出你的建议/意见吗?
谢谢卡蒂尔
使用您想要的价格创建一个枚举。
public enum Month
{
SEPTEMBER (3.33),
OCTOBER (4.85),
NOVEMBER (5.98),
etc ;
public final double Price;
Month(double monthPrice)
{
this.Price = monthPrice;
}
}
然后访问该价格:
Month.SEPTEMBER.Price
编辑因为数据在运行时被更改,并且有"无限"的可能性,使用类将是一个更易于管理的选项。
public class Year
{
public final List<Month> Months;
public Year(List<Month> months)
{
Months = months;
}
}
public class Month
{
public final double Price;
public Month(double price)
{
Price = price;
}
}
如果(假设在这里)每个客户返回的"数据对象"是某种哈希图(kv-store)怎么办。
然后使用一些约定,您可以使用<day,month,year>
-combi 来构建一个键,该键用于在返回的数据对象中查找该特定组合的价格。