Creare una classe generica in Java

Una classe generica in Java è una classe che può operare su un tipo specifico specificato dal programmatore in fase di compilazione. Per fare questo, la definizione della classe utilizza tipo di parametro s che agiscono come variabili che rappresentano i tipi (come int o String).

Per creare una classe generica, si elencano il parametro del tipo dopo il nome della classe tra parentesi angolari. Il parametro type specifica un nome che è possibile utilizzare per tutta la classe ovunque youâ € la d altrimenti utilizzare un tipo. Ad esempio, Hereâ versione semplificata € sa della dichiarazione di classe per la classe ArrayList:

public class ArrayList <E>

Ho lasciato fuori la proroga e applica le clausole di concentrarsi sul parametro formale tipo: <E>. Il parametro E specifica il tipo di elementi che sono memorizzati nella lista.

Per creare un'istanza di una classe generica, è necessario fornire il tipo effettivo che verrà utilizzato al posto del parametro di tipo, in questo modo:

ArrayList <String> myArrayList;

Qui il parametro E è String, quindi il tipo di elemento per questa istanza della classe ArrayList è String.

Ora guardate la dichiarazione per il metodo Add della classe ArrayList:

boolean add pubblico (E o)
{
// Corpo del metodo omesso (grazie)
}

Dove che normalmente si aspetta di vedere un tipo di parametro, vedete la lettera E. Così, questa dichiarazione di metodo specifica che il tipo per il parametro o è del tipo specificato per il parametro di tipo formale E. Se E è String, il metodo Add accetta solo oggetti String. Se si chiama il metodo add passando qualcosa di diverso da un parametro String, il compilatore genera un messaggio di errore.

È inoltre possibile utilizzare un parametro di tipo come tipo di ritorno. Hereâ € s la dichiarazione per il metodo della classe ArrayList get:

Pubblico e get (int index)
{
// Corpo del metodo omesso (youâ € re benvenuto)
}

Qui, E viene specificato come tipo di ritorno. Questo significa che se E è String, il metodo restituisce oggetti String.

Il vantaggio principale di farmaci generici è che tipo di controllo avviene in fase di compilazione. Così, dopo aver specificato il valore di un parametro formale di tipo, il compilatore sa fare il tipo di controllo previsto dal parametro. Thatâ € s come si sa, non lasciare che si aggiungono oggetti String a una collezione dei dipendenti.