可以将void作为参数传输?

时间:2016-08-10 17:57:32

标签: java hyperlink parameters void

我正在Javafx中编写一个控制台,在这个控制台中我正在使用超链接。由于超链接可以做的不仅仅是启动一个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);
}

1 个答案:

答案 0 :(得分:3)

如果需要运行函数,可以使用lambda(仅限Java 8+)或@JonnyHenly指出的Runnable。 然后你的代码变成:

arrow heads
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);