Groovy'un statik typechecker ile oynuyorum ve ilginç bir sorunla karşılaştım. Java yöntemini çağıran Groovy yöntemim var. Groovy tarafta, bu kod iyi çalışır, ben typechecking olmadan Groovy: yöntem uygulanamaz (yakalama <?>)
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;
}
var, Java tarafında
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.VERSION_2_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
}
var. Typechecking ile Groovy kodunun son satırında
method cannot be applied to (capture<?>)
derleyici hatası alıyorum. Groovy 2.4.6 çalışıyorum. Baska öneri?
P' tip explicitelty 'tanımlamak denemek anlamına gelebilir – injecteer