如果我有执行以下操作的程序:

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();


干杯!

10-01 23:56
查看更多