1 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超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。
添加回答
舉報(bào)