【发布时间】:2011-08-16 17:26:00
【问题描述】:
我需要一个“接受参数的 Runnable”,尽管我知道这样的 runnable 并不存在。
这可能表明我的应用程序设计存在根本缺陷和/或我疲倦的大脑中存在心理障碍,所以我希望在这里找到一些关于如何完成类似以下操作的建议,没有 em> 违反了基本的 OO 原则:
private Runnable mOneShotTask = new Runnable(String str) {
public void run(String str) {
someFunc(str);
}
};
知道如何完成上述操作吗?
【问题讨论】:
-
现在您可以使用
Consumer<T>。 -
我已经阅读了这个问题的各种答案。让我感到奇怪的是,没有人告诉您可以将所需的 Runnables 添加到您的项目中(带有一个、两个、三个或更多参数),只需添加一个适当的接口即可。我在这里为感兴趣的人创建了一个评论要点:gist.github.com/jsfan3/3a66e711fd0fd233c5e4c467184adb7a
-
这不是“如何将参数传递给 Java 线程”的副本。现代的答案是,就像@Alex78191 所说:使用
Consumer<T>