Я играю со статической проверкой типов Groovy и столкнулся с интересной проблемой. У меня есть метод Groovy, вызывающий метод Java. На стороне Groovy у меня есть
import com.restfb.Parameter
import com.restfb.Connection
import com.restfb.Version
import com.restfb.DefaultFacebookClient
@TypeChecked
static List<Map<String, String>> getPages(accessToken, query) {
Connection<Page> conn = new DefaultFacebookClient(accessToken, Version.VERSIONpublic static Map<String, String> page2map(Page page) {
Map<String, String> res = new HashMap<>();
res.put("likes", page.getName());
// some more stuff here
return res;
}
5).fetchConnection(
"search", Page.class,
Parameter.with("q", query),
Parameter.with("type", "page"),
Parameter.with("fields", "name,about"),
Parameter.with("limit", 100)
);
conn.data.flatten().collect { p -> page2map(p) } // error here
}
На стороне Java у меня есть
public static Map<String, String> page2map(Page page) {
Map<String, String> res = new HashMap<>();
res.put("likes", page.getName());
// some more stuff here
return res;
}
Без проверки типов этот код работает нормально. При проверке типов я получаю ошибку компилятора method cannot be applied to (capture<?>)
в последней строке кода Groovy. Я использую Groovy 2.4.6. Какие-либо предложения?
p
явно:.collect { Page p -> ... }
- person injecteer   schedule 12.04.2016