扩展这个问题 ,我已经接受了答案,说使用查找表或HashMap中针对这种情况,因为这将是一个更好的结构来处理多个条件 。
当前的结构。
类来存储消息。
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实现/哈希表等,这将是有利的怎么样?
- - 编辑 - -
我被@assylias前面回答去,因为它是更清洁的申请。 但是,如果我用枚举,然后我有一个修复。
为了描述大图...
即邮件列表是像...
1) “欢迎” + nameOfUser + “你的成功率是” + succssRate + “%” +以前它是较早+ + “%”。
2) “哦,是的。” + succssRate + “%” +从早前+ + “%” 提高。
3)“现在你应该专注于” + exerCiseName。
我怎么能做到这一点使用枚举,因为它有固定的字符串数据。 我可以做不同的构造? 与编辑代码assylas任何例如如何回答呢?