我目前正在Java中使用一个可能用于许多不同功能的单独线程,我想知道是否有办法将实际函数调用的命令作为参数传递。这看起来像是:
class myWorkerThread implements Runnable
{
private (<String/whatever other type>) runCommand;
public myWorkerThread(<String/whatever other type> <my command>)
{
}
public void run()
{
//Actually run that command.
}
}
我希望得到一个工具,它不会让我使用丑陋的switch case语句或类似的东西。我要求线程运行的不同函数有不同的参数,但我希望能够使用相同的线程运行它们。
跟进问题/链接到其他资源很棒。
感谢。
答案 0 :(得分:5)
答案 1 :(得分:4)
您不能将函数指针作为参数传递给Java。 (可选)您可以定义支持该操作的接口,并将引用传递给实现该接口的对象。从该引用中调用所需的方法。
此外,您使用Command这个词让我觉得Command Processor pattern可能有用。
答案 2 :(得分:1)
您可以使用Command
方法制作execute()
界面
然后,每个命令都是实现接口的单独类。
答案 3 :(得分:0)
您可能还想查看Java Reflection。
这是因为您可以使用字符串对象按名称调用方法。