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 :
codice:
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); 
    } 
......
......
oppure
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);
	}
Ne ho altre 9 di strutture simili.
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:
codice:
public void searchMixed(DataStruct<String> e, int f){
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!!
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>;