【发布时间】:2019-09-05 09:23:03
【问题描述】:
我尝试过运行这样的方法,但没有成功。
我的地图与方法参考:
private final Map<String, Runnable> validationMethods = new HashMap<>();
{
validationMethods.put("getTransactions", ValidationInterceptor::validateTransactions);
validationMethods.put("getDeals", ValidationInterceptor::validateDeals);
}
这是我尝试从地图运行的方法:
private static void validateTransactions(Method method, List<Object> arguments, Object resourceInstance) {
doSomthing(method, arguments, resourceInstance);
}
private static void validateDeals(Method method, List<Object> arguments, Object resourceInstance) {
doSomthing(method, arguments, resourceInstance);
}
以及带参数的核心方法:
protected void handleValidation(final Message message, final Method method, final List<Object> arguments) {
validationMethods.get(method.getName()).run();
}
问题是 - 如何将参数传递给静态方法?
【问题讨论】:
-
您的
Map值为Runnable,并且由于run()不带参数,因此您无法为其分配带参数的方法引用。
标签: java java-8 method-reference