Metodo static generico

Pessoal, eu tenho uma classe generica GeradorDeGrafo, e preciso
que o metodo generico abaixo seja estatico:

public Grafo <T> obtemGrafo(File file) {…}

porem eu nao estou conseguindo achar a sintaxe.
Ja tentei um monte de opcoes, se alguem souber como faz,
ou se nao tem jeito e puder me ajudar eu agradeço.

é isso?

import java.io.File;

public class Teste
&#123;
   public static &lt;T&gt; Grafo&lt;T&gt; obtemGrafo&#40;File file&#41;
   &#123;
      return new Grafo&lt;T&gt;&#40;&#41;;
   &#125;
&#125;

class Grafo&lt;T&gt;
&#123;

&#125;

O generic T tem que ser declarado, pois o método eh estatico, ex:

public class X&lt;T&gt; &#123;
  return T lala&#40;&#41; &#123; ... &#125;
&#125;

Se quizer lala como estatico, ele não entende o T pois o T foi declarado para classe X, como eh estatico, vc tem que declarar ele para o método… mas ele não é o mesmo que o da classe, eh outro…

public class X&lt;T&gt; &#123;
  return &lt;T&gt; T lala&#40;&#41; &#123; ... &#125;
&#125;

seila se a explicação tecnica eh exatamente essa ai… mas :stuck_out_tongue:

espero ter ajudado

valeu!

Na realidade um método estático não pode ser genérico, pois ele não pode ser sobrescrito.

Recomendo que use o Design Pattern Factory:


Ou Builder:

O ultimo parece mais adequado para esse caso.