0

戻り値の型が動的である場合に 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;
}

あなたの提案/コメントで私を助けてもらえますか?

ありがとう、カシール

4

2 に答える 2

2

必要な価格で Enum を作成します。

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;
    }
}
于 2012-08-12T16:54:28.367 に答える
0

(ここで仮定すると) 各顧客に対して返された 'dataobject' が何らかのハッシュマップ (kv-store) であったとします。

次に、いくつかの規則を使用して、<day,month,year>-combi を使用して、返されたデータオブジェクトでその特定の組み合わせの価格を検索するために使用されるキーを作成できます。

于 2012-08-13T08:17:07.147 に答える