有没有办法在Java中传递方法引用?

Sef*_*efu 2 java parameters methods reference function

这很难说,但我需要能够将特定方法链接到对象.更具体地说,我正在制作面向图形的GUI,我希望能够将任意方法指定为元素的默认"动作"功能,例如按钮.

也就是说,我创建了这些基本上具有绘制自己能力的界面"图形"对象.我希望他们能够处理自己的行为,所以我可以做一些像这样的事情:

GraphicObject b1 = new Button();
GraphicObject b2 = new Button();
b1.assignDefaultAction(---some method reference here--);
b2.assignDefaultAction(---a different method reference here--);
Run Code Online (Sandbox Code Playgroud)

然后,如果我做了类似的事情:

b1.action();
b2.action();
Run Code Online (Sandbox Code Playgroud)

每个元素将独立调用自己的引用方法.我相信这可以用C++做,但我还没有在Java中看到它.它甚至可能,还是有某种解决方法?我试图避免的事情是必须为我需要做的每一件小事创建特定的抽象,或者丢弃我的包含一百个看起来凌乱的规格的JPanel.

谢谢你的帮助.

duf*_*ymo 6

按钮应该使用ActionListener实现.在特定情况下坚持使用Swing.

您自己的类可以跟随并从命令模式界面开始:

public interface Command {
    public void execute(Map<String, Object> parameters); 
}
Run Code Online (Sandbox Code Playgroud)

或者更好的想法是坚持使用JDK提供的API并尝试Callable.