Sobre generics

4 respostas
Diabo_Loiro
Given:
 class Food { }
 class Fruit extends Food { }
 class Apple extends Fruit { }
 // insert code here
   public static void main(String[] munch) {
     Pie<Fruit> p = new Pie<Fruit>();
   }
     }
Which inserted at // insert code here, will compile? (Choose all that apply.)

por que isso não funciona sendo que fruit é super classe de Apple.

Obrigado.

4 Respostas

kaduzick

O pouco que pude ler me deu a seguinte conclusão:

Ao criar uma classe genérica você pode especificar o tipo genérico class Pie. Mas o que vai definir se o tipo pode ser uma super classe de T é a hora de criar o objeto.

Pie<? super Apple> objetoGen;

É aqui que você fala que o Tipo (T no caso) pode ser um supertipo de Apple. Bom, foi o que eu entendi até agora.

Diabo_Loiro

Acredito que não por que todas abaixo funcionão.

Correct Answer

A: class Pie {

B: class Pie {

F: class Pie {

References

EXPLANATION:

A, B, and F are correct.

C and D are incorrect because Fruit is not in bounds as a type of Apple or Pie when you try

to instantiate a new Pie. E is incorrect syntax.

REFERENCES:

See Bates, Bert and Kathy Sierra. SCJP Sun® Certified Programmer for Java? 6 Study

Guide (Exam 310-055). New York, Osborne/McGraw-Hill, 2008.

Chapter 7: Generic Types

OBJECTIVE: Write Generic Classes (Objective 6.4)

ele reclama de E is incorrect syntax.

alternativa E era justamente o que eu não entendi por que não funciona -> class Pie {}

taaqui

Editado
Reflexão

Diabo_Loiro

?

Criado 26 de novembro de 2009
Ultima resposta 26 de nov. de 2009
Respostas 4
Participantes 3