作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这很难表达,但我需要能够将特定方法链接到对象。更具体地说,我正在制作一个面向图形的 GUI,我希望能够将任意方法指定为元素(例如按钮)的默认“操作”函数。
也就是说,我创建了这些基本上具有 self 绘制能力的接口(interface)“图形”对象。我希望他们处理自己的行为,所以我可以,例如,做这样的事情:
GraphicObject b1 = new Button();
GraphicObject b2 = new Button();
b1.assignDefaultAction(---some method reference here--);
b2.assignDefaultAction(---a different method reference here--);
然后,如果我做类似的事情:
b1.action();
b2.action();
每个元素都会独立调用自己引用的方法。我相信这在 C++ 中是可能的,但我还没有在 Java 中看到它。甚至有可能,还是有某种解决方法?我试图避免的事情是必须为我需要做的每一件小事创建特定的抽象,或者在我的包含 JPanel 中乱扔一百个看起来很乱的规范。
感谢您的帮助。
最佳答案
按钮应该使用ActionListener
实现。在这种特殊情况下坚持使用 Swing。
您自己的类可以效仿并从命令模式接口(interface)开始:
public interface Command {
public void execute(Map<String, Object> parameters);
}
或者更好的主意是坚持使用 JDK 提供的 API 并尝试 Callable .
关于java - 有没有办法在 Java 中传递方法引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9338193/
我是一名优秀的程序员,十分优秀!