如果我有执行以下操作的程序:
if(input=='abc'){do x}
if(input=='def'){do y}
将来,我可能想添加另一段代码,如下所示:
if(input=='ghy'){do x}
如您所见,我正在使用SAME函数X为不同的条件BUT添加新的'if'语句。
将来的代码可能会具有许多不同的IF语句(或开关),所有这些语句都将字符串与字符串进行比较,然后执行功能。考虑到将来的扩展,我想知道是否有可能采用“更整洁”,“模块化”的方式来实现相同的结果。
我无法在Java的哈希表(字符串,方法)中将String与Method调用组合在一起,这是一个遗憾。这样,我可以将任何新过程存储在哈希表中,并获取该String的相关方法。
有任何想法吗?
谢谢
编辑:谢谢大家的解决方案。在这么短的时间内收到的答复数量和质量使我感到惊讶。
最佳答案
也许您可以使用enum
。例:
public enum InputType
{
abc, def
{
@Override
public void x()
{
System.out.println("Another method");
}
},
ghy;
public void x()
{
System.out.println("One method");
}
}
并进一步:
InputType.valueOf("abc").x();
干杯!