Hejsan NG,
Jeg har lidt problemer med type-inferens ved statiske metoder som bruger
generics. Se eksemplet herunder. Det jeg gerne vil er selvf. det som
ikke virker
Jeg ville gerne have det virker, da det er til noget builder hvor der
bruges statiske imports - hele ideen er at det er noget lettere at
skrive kun metode(..) end Blabla.<Type>metode(..)
Findes der nogen workarounds for at få type-inferensen til at virke over
flere "led" ?
---
package prototype;
public class TypeInfTest {
public static class Container<V, E> {
}
public interface Generator<V, E> {
public void apply(Container<V, E> container);
}
public static class MyGenerator<V, E> implements Generator<V, E> {
@Override
public void apply(Container<V, E> veContainer) {
// whatever
}
}
public static <V, E> Generator<V, E> generator() {
return new MyGenerator<V, E>();
}
public static <V, E> Container<V, E> execute(Generator<V, E> generator) {
Container<V, E> c = new Container<V, E>();
generator.apply(c);
return c;
}
public static void main(String[] args) {
// virker
Container<String, String> c0 = execute(null);
// virker
Container<String, String> c1 = execute(TypeInfTest.<String, String>generator());
// virker
Container c2 = execute(generator());
// virker IKKE
Container<String, String> c3 = execute(generator());
}
}
---
Mvh,
Søren