この質問を拡張して、複数の条件を処理するためのより良い構成であるため、この場合はルックアップテーブルまたはハッシュマップを使用するという回答を受け入れました。
現在の構成。
メッセージを保存するクラス。
public class ProgressMessages
{
public static String msg1="Welcome here .....";
.
.
.
//around 100 more similar static variables.
}
上記のクラスからの適切なメッセージを調整して表示します。
int x=calculatedVal1(m,n);
int y=calculatedVal2(o,q);
SimpleDateFormat formater=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d=new Date();
String s=formater.format(d);
try {
long d1 = formater.parse("2013-01-10 13:53:01").getTime();
long d2=formater.parse(s).getTime();
totaldays=Math.abs((d1-d2)/(1000*60*60*24));
} catch (ParseException e) {
e.printStackTrace();
}
if(totaldays<7&&x<20)
{
System.out.println("my message...1"+ProgressMessages.msg1);
}
else if(totaldays<7&&x>10&&y<20)
{
System.out.println("my message...2"+ProgressMessages.msg2);
}
....
//obvioulsy 100 more else-if's to display 100 messages.
この場合、ルックアップテーブルがどのように役立つかを実際に知りたいですか?
java Hashmap / Hashtableなどでどのように実装する必要がありますか?どのように有利ですか?
- - 編集 - -
適用する方がクリーンなので、@assyliasanwerを使用します。しかし、列挙型を使用する場合は、修正があります。
全体像を説明するには...
つまり、メッセージのリストは次のようになります...
1)「ようこそ」+ nameOfUser+"成功率は"+succssRate + "%"+以前は+以前+"%"でした。
2)「ああそうです..」+ succssRate + "%"+は+以前の+"%"から改善されました。
3.)「今度は」+exerCiseNameに焦点を当てる必要があります。
文字列データが修正されているため、列挙型を使用してこれを行うにはどうすればよいですか?別のコンストラクターを作成できますか?assylasへの編集コードの例はどのように答えますか?