gpt4 book ai didi

Java常见的Try/Finally block 围绕不同的代码块 - 代码风格

转载 作者:行者123 更新时间:2023-12-02 10:43:12 35 4
gpt4 key购买 nike

我有相同 if() { try { < SOME CODE > } finally { } } else {}我在 3 种方法中使用的 block 。

每种方法中唯一不同的是<某些。

是否有任何编码模式可以用来“干燥”我的代码?理想情况下希望提取 if() { try { } finally { } } else {}到一些常见的结构并将 传递给它。这在 Java 中可能吗?

谢谢

最佳答案

您可以引入一种通用方法来分解公共(public)部分。

然后根据您的要求,您可以这样做:

1) 如果 3 个方法位于同一个类中:提取 3 个特定方法中 try 主体的每组语句,并将该方法作为 Runnable 参数传递在通用方法中。
例如:

public void commonMethod(Runnable methodToInvoke){

if() {
try { methodToInvoke.run() } finally { }
}
else {}
}

并通过传递 3 个提取的方法来调用它:

commonMethod(this::methodFoo);
commonMethod(this::methodBar);
commonMethod(this::methodFooBar);

2) 如果这 3 个方法位于不同的类中:引入这 3 个类将实现的接口(interface),并使公共(public)方法接受该接口(interface)的参数。

例如,引入了Processing接口(interface):

public void commonMethod(Processing processing){

if() {
try { processing.doThat() } finally { }
}
else {}
}

并通过传递 Processing 接口(interface)的 3 个实现来调用它:

commonMethod(foo);
commonMethod(bar);
commonMethod(fooBar);

关于Java常见的Try/Finally block 围绕不同的代码块 - 代码风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52784197/

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