gpt4 book ai didi

java - 可以将 void 作为参数传递吗?

转载 作者:行者123 更新时间:2023-11-29 04:41:52 24 4
gpt4 key购买 nike

我正在用 Javafx 编写一个控制台,在这个控制台中我正在使用超链接。由于超链接不仅仅可以启动 URL,我想知道您是否可以传递一个 void 让它们运行。

这是我启动 URL 的超链接示例:

public void writeHyper(String name, String url) {
Hyperlink link = new Hyperlink(name);
link.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
try {
Desktop.getDesktop().browse(new URI(url));
} catch (IOException | URISyntaxException e1) {
e1.printStackTrace();
}
}
});
t.getChildren().add(link);
}

是否可以按照这些思路做一些事情:

public void writeVoid(String name, Void v) {
Hyperlink link = new Hyperlink(name);
link.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
// runs the void
}
});
t.getChildren().add(link);
}

最佳答案

如果你需要一个函数来运行,你可以使用 lambda (仅限 Java 8+)或正如@JonnyHenly 指出的那样,一个 Runnable .您的代码将变为:

public void writeVoid(String name, Runnable r) {
Hyperlink link = new Hyperlink(name);
link.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
r.run(); // runs the void
}
});
t.getChildren().add(link);

...
writeVoid(name, new Runnable() {
@Override
public void run() {
System.out.println("Running!");
}
}
...

关于java - 可以将 void 作为参数传递吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38880446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com