J'ai rencontré une situation curieuse impliquant des méthodes génériques statiques. Voici le code:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
Comment se fait-il que je n'ai pas à spécifier d'arguments de type dans l'expression Foo.createFoo()
? Est-ce une sorte d'inférence de type? Si je veux être explicite à ce sujet, comment puis-je spécifier l'argument de type?