java - 在 Java 中将任意方法与另一个方法关联?

标签 java

我正在(应该)创建一个简单的菜单显示。我的 Menu 类创建了一个 MenuOption 对象列表,可以显示和选择这些对象等。程序员可以使用 addOption 方法将选项添加到 Menu 类 optionList 中的列表中。

我想要做的是让程序员可以将他或她的其他类之一中的任意方法与特定选项关联起来。

例如,如果程序员输入如下内容,我想要它:

menu.addOption("Print a roster", roster.print());

然后 addOption 方法会执行如下操作:

optionList.add(new MenuOption("Print a roster", roster.print()));

然后,从此以后,方法 roster.print() 将与菜单选项文本“打印名册”相关联,因此如果用户选择“打印名册”,则会调用 roster.print()。

==================================================

顺便说一句,我已经开始研究 Java 8 中的新 Lambda 表达式,但我不太确定它们是如何工作的,或者它们是否提供了实现我想要的效果所需的必要方法。

感谢任何帮助,谢谢!

最佳答案

MenuOption 构造函数的第二个参数必须是 Runnable,并且您可以提供

roster::print

作为一个值。这称为 Method Reference ,并且只是用于创建实现 Functional Interface 的对象的语法糖。 (在本例中 Runnable )。也可以写成

() -> roster.print()

单击按钮时,您需要调用 run() 方法。

关于java - 在 Java 中将任意方法与另一个方法关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36853455/

相关文章:

JVM 关闭前 Java 轮询器线程清理

java - 返回主方法?

java - 将每个资源的名称与 sqlite 数据库变量的内容进行比较

Java - 当声明全局变量并用值初始化时,对象创建时会发生什么?

java - 无法启动 Activity ComponentInfo 错误?

java - 在 Java 中从 Scala 调用函数

java - Setter/Getter 方法不起作用

java - 如何将图像文件从图库移动到另一个文件夹

java - java中杀死一个对象

java - 从 Java 执行未标记化的命令行