有一个Java类,其中一个字段是方法?

| 我对Java还是很陌生,因为我的帖子的性质将会消失 我需要创建一个包含一组方法的类,如果需要的话,程序员可以轻松地对其进行扩展。我考虑过两节课:
Commands
Command
。 “ 0”包含一个“ 1”对象的数组,程序员可以在其中添加新命令。
Command
类有两个字段。类的名称和方法签名。我不确定该怎么做。在C语言中,我认为您可以具有函数的结构,因此我们可以拥有一个类,该类的实例为方法吗?还是我完全走错了路? 我考虑过尝试做这样的事情:
public class Commands
{
    private ArrayList<Command> commands;

    /**
     * Constructor for objects of class Command
     */
    public Commands()
    {
        createCommands();
    }

    /**
     * This is where a programmer can add new commands
     */
    public void createCommands()
    {
        commands.add(new Command(\"move\", public void move()));
    }

    /**
     * This is where the programmer can define the move command
     */
    public void move()
    {
        ....
    }
}

public class Command
{
    private String command_name;
    private Method command;

    public Command(String command_name, Method command)
    {
        this.command_name = command_name;
        this.command = command;
    }
}
我知道这有很多问题,但是我一直坚持寻找正确的方法。提示/帮助会很棒。     
已邀请:
Java没有函数指针。这是一个常见的技巧:
abstract class (or interface) Command {
  void execute();
}

public void createCommands() {
  commands.add(new Command(){ 
      @Override
      void execute() {
        something.move();
      }
    });
}
    
我认为您想使用Command模式:   在面向对象的编程中,   命令模式是一种设计模式   用哪个对象来表示   并封装所有信息   需要稍后再调用一个方法   时间 维基百科页面上有一个示例。 您的
Command
应该是带有
execute
方法的接口。程序员可以编写实现
Command
接口的类,因此,他/他必须实现
execute
方法来执行所需的操作。然后,您可以拥有一个
Command[]
数组,对于每个
Command
对象,您只需调用
execute
即可执行任务。     
Java没有函数指针,因此这不起作用。您可能想要做的是在具体子类中实现一个带有interface14ѭ方法的Command接口。 这是一个风格问题,但是我通常在Command实现中没有名称字段。相反,我只是创建一个
Map<String, Command>
,其中包含每个命令的名称。     
请注意,您不能直接在Java中传递方法。相反,它们将需要是实现公共接口的对象。例如,您的方法可能成为实现Runnable接口的对象。然后,当您需要使用该方法时,只需调用\“ run \”即可。     

要回复问题请先登录注册