【发布时间】:2021-05-18 23:15:20
【问题描述】:
有没有办法将可执行块作为参数传递给静态方法?有可能吗?比如我有这个方法
public static void someMethod(boolean flag, Block block1, BLock block2) {
//some other code
if(flag)
block1.execute();
else block2.execute();
//some other code
}
或类似的东西。它实际上比这更复杂,我只是简化了这个问题。我正在尝试重构我的项目,并创建了一个通用实用程序类,其中包含我的类使用的静态方法。
【问题讨论】:
-
查看命令模式。
-
我认为 Java 的下一个版本有类似的东西,但是现在,它没有语言支持,你必须将你的逻辑包装在一个类中,就像你如何在 Swing 应用程序中进行事件处理一样和东西。
-
使用 Runnable 或 Future 或您选择的界面。
-
在将代码重构为静态方法之前,您可能希望阅读此内容。 misko.hevery.com/2008/12/15/…
-
仅供参考,Java 8 增加了对lambda expressions 的支持,它可以与
Runnable和Callable等单方法接口一起使用,以使传递“代码块”的语法非常简洁。
标签: java refactoring