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