标题可能会让你感到困惑,但这就是我所要求的。
我有两个课程:Parser
和CommandArray
。
在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中有没有简单的方法呢?
答案 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 包。