Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [JAVA] Tipi generici

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    106

    [JAVA] Tipi generici

    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>;

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: [JAVA] Tipi generici

    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?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.