java - 添加新字符串的调制 -> 方法调用

标签 java modularization

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

if(input=='abc'){do x}
if(input=='def'){do y}

在未来,我可能想添加另一段代码,如下所示:

if(input=='ghy'){do x}

如您所见,我使用相同的函数 X 为不同的条件添加了一个新的“if”语句。 future 的代码可能会有很多不同的 IF 语句(或开关),所有这些语句都比较一个字符串与一个字符串,然后执行一个函数。考虑到 future 的扩展,我想知道是否有一种可能的“更简洁”、“模块化”的方式来实现相同的结果。

很遗憾我无法在 Java 的哈希表 (String, method) 中将 String 与 Method 调用结合起来。这样我就可以将任何新过程存储在哈希表中并获取该字符串的相关方法。

有什么想法吗?

谢谢

编辑:感谢大家提供的解决方案。我对在这么短的时间内收到的回复数量和质量感到惊讶。

最佳答案

也许你可以使用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();

干杯!

关于java - 添加新字符串的调制 -> 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5057696/

相关文章:

cocoa - 使用多个 XCTestCase 类进行 UITesting

java - 在绘图应用程序中分离模型和 View / Controller

java - 使用 DocuSign AuthenticationApi.login() 进行旧版身份验证时出错 - 缺少 grant_type/code

java - (eclipse) Junit 测试不使用 VM 参数中的 cacert 证书 - 无法找到请求目标的有效证书路径

java - Wicket 口页面参数编码

java - Java 9 如何避免拆分包

java - 更改了类名,现在 Netbeans 8.2 无法运行任何项目

java - 一个 OSGi 用例——我说的对不对?

c - 用 C 语言构建模块化库

javascript - js - 避免 namespace 冲突