Generics e JFC

di il
2 risposte

Generics e JFC

Salva a tutti ragazzi, mi servirebbe una mano con questo esercizio:
Si vuole introdurre una classe GruppoDiForme che rappresenta un raggruppamento di forme. In particolare, le forme di un raggruppamento possono essere rettangoli, cerchi e altri raggruppamenti. • La classe GruppoDiForme deve offrire il metodo: void trasla(int x, int y) Il metodo trasla() trasla tutto il raggruppamento (cioè tutti gli oggetti che compongono il raggruppamento).

Più precisamente mi sono bloccato al punto dove dovrei inserire all' interno della Classe GruppoDiForme il metodo trasla()...
Come faccio a creare un metodo generico che sappia che io mi sto riferendo alle altre classi Es: Cerchio o Rettangolo?

Di seguito vi lascio il mio codice della classe GruppoDiForme.. il codice delle classi Rettangolo o Cerchio non penso ci sia bisogno di scriverle, al massimo le lascio in allegato..
import java.util.List;
import java.util.ArrayList;

public class GruppoDiForme <E> {


	private  List <E> forme;
	
	public GruppoDiForme( ){
		this.forme = new ArrayList <E>();
	}

	public boolean addForma(E forma){
		return this.forme.add(forma);
	}
	
	
}
Vi ringrazio in anticipo e Buona serata.
Allegati:
16176_05b1f77f3b89f30d005d044421a33886.txt
16176_05b1f77f3b89f30d005d044421a33886.txt

16176_2f3a18357ea43e77a02a01a9f22edbe3.txt
16176_2f3a18357ea43e77a02a01a9f22edbe3.txt

16176_89d2b0f6d609036c2417b2fe97cec54c.txt
16176_89d2b0f6d609036c2417b2fe97cec54c.txt

2 Risposte

  • Re: Generics e JFC

    pilero ha scritto:


    Più precisamente mi sono bloccato al punto dove dovrei inserire all' interno della Classe GruppoDiForme il metodo trasla()...
    Come faccio a creare un metodo generico che sappia che io mi sto riferendo alle altre classi Es: Cerchio o Rettangolo?
    Sono stato assente dai forum parecchio ultimamente, ma a questa domanda in particolare rispondo subito e ben volentieri.

    Se Forme (nota1: sarebbe più sensato Forma) ha il void trasla(int x, int y) (quindi vale per tutte le forme, già al livello di astrazione di Forma), allora la cosa più sensata per il gruppo è:

    public class GruppoDiForme<E extends Forma> implements Forma { ........ }

    In questo modo il E è ristretto solo a tipi che derivano da Forma (non può essere un String o altro che non avrebbe senso). Ora ... non è importante se poi viene istanziato es. un new GruppoDiForme<Cerchio>() (che conterrà solo cerchi) o un GruppoDiForme<Forma>() (che può contenere qualunque forma, anche di tipi differenti).
    Quello che è importante è che se è <E extends Forma>, vuol dire che all'interno di GruppoDiForme tu SAI e sei sicuro che tutti gli oggetti trattati avranno sicuramente il trasla, perché è appunto già noto nel tipo che fa da limite superiore.


    P.S. a presto sul forum!

    P.S. 2) non ho capito cosa c'entra JFC nel titolo.
  • Re: Generics e JFC

    Ti ringrazio per la risposta, vediamo cosa esce fuori...
Devi accedere o registrarti per scrivere nel forum
2 risposte