Consulta sobre clases Genéricas

Hola,

Estoy tratando de entender un ejercicio de un test de examen para scjp, y no consigo entenderlo. En la respuesta se indica que E está asociado a las instancias de Hose y no consigo captar la idea de ésto... y además tampoco entiendo que el metodo doStuff() si no fuese estatico la opción B No puede ser verdadera. Si alguien me puede ayudar...estoy mirando información pero no encuentro nada en concreto.

Gracias

Given:
1. public class Hose {
2. E innerE;
3. public static E doStuff(E e, Hose e2) {
4. // insert code here
5. }
6. public E getE() {
7. return innerE;
8. } }

Which can be inserted, independently at line 4, for the code to compile? (Choose all that apply.)
A. return e;
B. return e.getE(); // esta opción no consigo enteder porque no puede ser posible si doStuff() no fuese static??
C. return e2;
D. return e2.getE();
E. return new Hose().getE();
F. Compilation fails regardless of which return is inserted.

Answer :
F is correct. The generic type "E", which is declared at the class level, will be associated with each instance of Hose, and is not accessible to static methods. If doStuff() wasnon-static, A and D would be correct.A, B, C, D, and E are incorrect based on the above.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Oracle

La documentación oficial de generics está bastante completa.