这是一个特定的问题,但我想知道如何对在参数中获得的函数进行HashMap,如下所示:
//All functions will take in string and return void
public HashMap<String,Function> functions = new HashMap<String,Function>();
public void addMethod(String name, Function func){
functions.put(name, func);
}
public void useMethod(String name, String input){
functions[name](input);
}
我该如何正确地做这件事呢?
发布于 2018-06-04 03:01:36
您可以使用Consumer<String>
。
首先,将您的HashMap更改为:
public HashMap<String,Consumer<String>> functions = new HashMap<>();
然后,您的addMethod
为:
public void addMethod(String name, Consumer<String> func){
functions.put(name, func);
}
然后你可以useMethod
到:
public void useMethod(String name, String input){
functions.get(name).accept(input);
}
https://stackoverflow.com/questions/50669922
复制相似问题