Ciao ragazzi...ieri ho avuto dei problemi con delle strutture e mi sono accorto che i tipi generici mi fanno in.....
Allora il io ho una superclasse definita in questo modo DataStruct<E> che estende parecchie sotto classi le quali al loro interno contengo strutture dati es :
oppurecodice:import java.util.ArrayList; public class StrArrayList<E> extends DataStruct<E>{ //ARGOMENTI// ArrayList<E> struct; //COSTRUTTORI// public StrArrayList(){ struct = new ArrayList<E>(); } public StrArrayList(int x){ struct = new ArrayList<E>(x); } ...... ......
Ne ho altre 9 di strutture simili.codice:import java.util.HashMap; public class StrHashMap<V,E> extends DataStruct<E> { //ARGOMENTI// private HashMap<Integer,E> struct; private Integer keyMem; //COSTRUTTORI// public StrHashMap(){ struct = new HashMap<Integer,E>(); } //METODI// public E get(Integer kk){ return struct.get(kk); }
Ora non riesco ad uscire da una situazione tragica....
Ho creato una terza classe dove ho scritto tutte le operazioni che si possono fare su tali strutture es:
Il problema che se gli passo una struttura con UN SOLO tipo generico (es StrArrayListi<E>) il metodo funziona, ma se gli passo una struttura con DUE tipi generici (es StrHashSet<Integer,E>) esso non funziona!!codice:public void searchMixed(DataStruct<String> e, int f){
Ovviamente so perchè non funziona ma non riesco a trovare soluzione...Come posso fare ad avere una super classe che può riferirsi a 2 strutture diverse?
Come posso fare ad ottenere una cosa simile senza errori?
codice:DataStruct<E> = new StrArrayListi<E>; DataStruct<E> = new StrHashSet<Integer,E>;

Rispondi quotando