curriedclosure.java
来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· Java 代码 · 共 30 行
JAVA
30 行
package org.codehaus.groovy.runtime;
import groovy.lang.Closure;
/**
* Represents wrapper around a Closure to support currying
*
* @author Jochen Theodorou
*/
public class CurriedClosure extends Closure {
private Object[] curriedParams;
public CurriedClosure(Closure uncurriedClosure, Object[] arguments) {
super(uncurriedClosure);
curriedParams = arguments;
maximumNumberOfParameters = uncurriedClosure.getMaximumNumberOfParameters()-arguments.length;
}
public Object[] getUncurriedArguments(Object[] arguments) {
final Object newCurriedParams[] = new Object[curriedParams.length + arguments.length];
System.arraycopy(curriedParams, 0, newCurriedParams, 0, curriedParams.length);
System.arraycopy(arguments, 0, newCurriedParams, curriedParams.length, arguments.length);
return newCurriedParams;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?