Questão sobre collection

Qual dos seguintes códigos compilará se inserido dentro da classe dada?

class MyGenericClass<T>{
}

A) static T obj2;

B)

static T getObj() {
  return new T();
}

C)

static void showObj() {
   T obj = new T();
   obj.show();

}

D) Todas as alternativas acima
E) Nenhuma das alternativas

Resposta E

Alguem pode explicar? desde já agradeço

T é uma tipificação do objeto, portanto não faz sentido usa-lo em um contexto estatico.

Antes de um objeto ser criado o tipo T simplesmente não existe.

A alternativa A está errada só por causa do modificador “static”, B e C além do modificador “static”, tambem tem um erro quando tentam instanciar T, sendo um tipo generico ele não pode ser instanciado. Mas acho que o objetivo da questão é que você saiba que não é possivel usar um tipo generico em um contexto estatico.

Desculpe a insistencia, mas ainda estou confuso :sad: obrigado pela paciência

Para entender essa questão é importante que você entenda o conceito de static, você entende?

Já estudei static, no qual se refere a atributo e metodos petencentes a classes independentemete de instâncias. Mas a minha dúvida é: collection somente é aplicada a instâncias e não a classes?

Obrigado mais uma vez

Então, o T só é “setado” quando se instância um objeto, um campo static não pode acessar um campo não static, certo?
Qualquer coisa é so fala.
Flw