将函数传递给方法,然后在另一个方法中使用该函数

时间:2017-10-28 17:54:50

标签: java

标题可能会让你感到困惑,但这就是我所要求的。

我有两个课程:ParserCommandArray

CommandArray中我想要一个将命令添加到我的数组的函数,看起来有点像这样:addCommand(String name, [Type] callback)。然后在Parser我想要CommandArray,所以Parser可以遍历一个字符串数组,找到name,解析该行,然后如果一切都是更正,运行callback并将该行传递给它。

这里有一些假代码来说明我尝试做得更好一些:

myCallback = function(line)
  print(line)
end

function parseLine(command, callback) -- command is the line
  -- do the parsing
  callback(command)
end

parseLine("Rectangle 32, 32, 64, 64", myCallback)

免责声明:此代码未经过测试

在Java中有没有简单的方法呢?

1 个答案:

答案 0 :(得分:2)

我不是100%确定您的最终结果是什么,但您可以通过使用功能接口来实现这一目标。

一个简单的例子:

下面的代码将等同于您的伪代码:

Consumer<String> myCallback = System.out::println;

然后parseLine函数将变为:

public void parseLine(String command, Consumer<String> callback){
       callback.accept(command);
}

然后这一行:

parseLine("Rectangle 32, 32, 64, 64", myCallback)

将成为:

parseLine("Rectangle 32, 32, 64, 64", myCallback);

有关所有可用功能界面的更多信息以及您可以使用它们执行的操作,请查看 java.util.function 包。