gpt4 book ai didi

java - 有没有好的方法来重构使用重复条件语句的方法?

转载 作者:行者123 更新时间:2023-12-01 19:33:52 26 4
gpt4 key购买 nike

我有两个类似的方法,具有重复的条件和重复的 else block 。我想重构它以共享相同的逻辑和 else block ,但调用不同的方法。我怎样才能做到这一点?

public void entryPoint1(...)
{
if(nullCheckStuff) {}
method1(stuff);
method2(stuff);
} else {
//log error
}
}

public void entryPoint2(...)
{
if(nullCheckStuff) {
method2(stuff);
} else {
//log error
}
}

最佳答案

如果您使用 Java 8 或更高版本,可能的解决方案是使用 lambda。您可以使用通用逻辑定义内部函数,该函数采用 Runnable 作为参数:

private void commonLogic(Runnable action)
{
if(nullCheckStuff) {
action.run();
} else {
//log error
}
}

那么你原来的函数看起来就像这样:

public void entryPoint1()
{
commonLogic(() -> { method1(); method2()});
}

public void entryPoint2()
{
commonLogic(() -> method2());
}

您可能还需要向 commonLogic() 函数添加更多参数,以传递 nullCheckStuff 表达式和错误处理 block 所需的数据。

关于java - 有没有好的方法来重构使用重复条件语句的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58530577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com