Mi sembra si possa fare, o almeno, compila...

codice:
class DataStruct<E> { }

class StrArrayList<E> extends DataStruct<E> { }

class StrHashSet<V, E> extends DataStruct<E> { }

class Test<E>
{
	
	DataStruct<E> a = new StrArrayList<E>();
	DataStruct<E> b = new StrHashSet<Integer, E>();
	
	{
		method(b);
	}
	
	void method(DataStruct<E> x) { }
	
}
Riesci a fare un esempio reale di un metodo che vorresti fare e non riesci?