java具有不同主要动作的相同功能

时间:2015-08-18 13:53:33

标签: java

嘿,所以我的情况是这样的 - 我有2个功能完全相同,但主要动作是不同的:

public static void Set(String key, String value) {
    ObjectNode config = GetConfig();
    config.put(key,value);
    WriteConfig(config);
}

public static void Delete(String key) {
    ObjectNode config = GetConfig();
    config.delete(key);
    WriteConfig(config);
}

现在我很兴奋,如果有一些方法我可以使这个代码漂亮,只需要编写一次代码并以某种方式发送主动作。

任何帮助表示赞赏! :)

1 个答案:

答案 0 :(得分:3)

如果您使用的是Java 8,那么您可以执行以下操作。首先,您创建一般command函数:

public static void command(Consumer<ObjectNode> function) {
    ObjectNode config = getConfig();
    function.accept(config);
    writeConfig(config);
}

然后,您可以让其他方法使用常规command,将中间主操作指定为参数:

public static void set(String key, String value) {
    command(config -> config.put(key, value));
}

public static void delete(String key) {
    command(config -> config.delete(key));
}