1 回答
TA贡献1799条经验 获得超6个赞
您可以使用groovy.transform.stc.FromString签名提示来使泛型类型正常工作。考虑以下示例:
Java类.java
import groovy.lang.Closure;
import groovy.transform.stc.ClosureParams;
import groovy.transform.stc.FromString;
import java.util.HashMap;
public class JavaClass {
public static void processRendered(@ClosureParams(
value = FromString.class,
options = {"java.util.Map<java.lang.String,java.lang.Object>"}) Closure closure) {
closure.call(new HashMap<String, Object>());
}
}
脚本.groovy
import groovy.transform.CompileStatic
import static JavaClass.processRendered
@CompileStatic
def test() {
processRendered { Map<String, Object> map ->
map.put("test", 1)
}
processRendered {
it.put("test", 2)
}
}
test()
它编译并为您提供签名提示,也适用于隐式it变量。
以下示例使用 Groovy 2.5.7。
添加回答
举报