<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="it" lang="it">
<head>
<title>Generics Java</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Generics_Java"/>
<meta name="wx_page_id" content="657814"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Generics Java" id="wxsec1"><h1 class="pagetitle" id="wx1">Generics Java</h1>

<wx:template id="wx_t1" pagename="Template:Torna_a" page_id="549959"/>
<div class="noprint" id="wx2">
<div style="margin-bottom:.5em; border:1px solid #EEE; font-size:95%; text-align:left; background: transparent;" id="wx3">
<p id="wx4"><a href="/wit/Immagine:1leftarrow.png" title="" wx:linktype="image" wx:pagename="Immagine:1leftarrow.png" id="wx5"><img src="/wit/Immagine:1leftarrow.png" alt="" width="16" id="wx6"/></a><i id="wx7">Voce principale: <b id="wx8"><a href="/wit/Java_5" title="Java 5" wx:linktype="known" wx:pagename="Java_5" wx:page_id="80672" id="wx9">Java 5</a></b>.</i></p>
</div>
</div>

<wx:templateend start="wx_t1"/>
<p id="wx10">Il <a href="/wit/Java_5" title="Java 5" wx:linktype="known" wx:pagename="Java_5" wx:page_id="80672" id="wx11">JDK 1.5</a> ha introdotto alcune interessanti estensioni al <a href="/wit/Java_%28linguaggio%29" title="Java (linguaggio)" wx:linktype="known" wx:pagename="Java_(linguaggio)" wx:page_id="26747" id="wx12">linguaggio Java</a>. Una di questa è l'introduzione dei <b id="wx13">generics</b> o <b id="wx14">tipi generici</b>. I generics permettono di definire delle <a href="/wit/Astrazione_%28informatica%29" title="Astrazione (informatica)" wx:linktype="known" wx:pagename="Astrazione_(informatica)" wx:page_id="654668" id="wx15">astrazioni</a> sui <a href="/wit/Tipo_di_dato" title="Tipo di dato" wx:linktype="known" wx:pagename="Tipo_di_dato" wx:page_id="26742" id="wx16">tipi di dati</a> definiti nel linguaggio. L'esempio più comune del loro utilizzo è nella definizione/uso dei, cosiddetti, contenitori. Prima dell'avvento del JDK 1.5 per poter gestire in modo trasparente tipi di dati differenti si doveva ricorrere al fatto che in Java ogni <a href="/wit/Classe_%28informatica%29" title="Classe (informatica)" wx:linktype="known" wx:pagename="Classe_(informatica)" wx:page_id="67016" id="wx17">classe</a> deriva in modo implicito dalla classe <i id="wx18">Object</i>; per esempio se si doveva implementare una <a href="/wit/Lista_concatenata" title="Lista concatenata" wx:linktype="known" wx:pagename="Lista_concatenata" wx:page_id="517330" id="wx19">lista concatenata</a> il codice era seguente:</p>

<pre id="wx20">
List myIntList = new LinkedList();
myIntList.add(new Integer(0));
</pre>

<p id="wx21">e invece per recuperare l'elemento appena inserito si doveva scrivere</p>

<pre id="wx22">
Integer x = (Integer) myIntList.iterator().next();
</pre>

<p id="wx23">Si noti il <a href="/wit/Conversione_di_tipo" title="Conversione di tipo" wx:linktype="known" wx:pagename="Conversione_di_tipo" wx:page_id="582194" id="wx24">cast</a> a <i id="wx25"><a href="/wit/Integer" title="Integer" wx:linktype="known" wx:pagename="Integer" wx:page_id="443451" id="wx26">Integer</a></i> necessario poiché <i id="wx27">myIntList</i> in realtà lavora su oggetti <i id="wx28">Object</i>. Dall'introduzione del JDK 1.5 invece è possibile utilizzare un codice come il seguente:</p>

<pre id="wx29">
List&lt;Integer&gt; myIntList = new LinkedList&lt;Integer&gt;();
myIntList.add(new Integer(0));
</pre>

<p id="wx30">dove viene esplicitamente espresso che la lista <i id="wx31">myIntList</i> lavorerà solo su oggetti di tipo <i id="wx32">Integer</i>. Per recuperare l'elemento appena inserito il codice è il seguente:</p>

<pre id="wx33">
Integer x = myIntList.iterator().next();
</pre>

<p id="wx34">Si noti che ora il cast non è più necessario visto che la lista è di interi.</p>
</wx:section></div>
<div id="wx_categorylinks">
<a href="/wit/index.php?title=Speciale:Categories&amp;article=Generics_Java" title="Speciale:Categories" wx:linktype="known" wx:pagename="Speciale:Categories" id="wx35">Categoria</a>: <span dir="ltr" id="wx36"><a href="/wit/Categoria:Java" title="Categoria:Java" wx:linktype="known" wx:pagename="Categoria:Java" wx:page_id="106864" id="wx37">Java</a></span></div>
<div id="wx_languagelinks">
Altre lingue: <a href="http://de.wikipedia.org/wiki/Generische_Programmierung_in_Java" class="external" wx:linktype="interwiki" wx:pagename="de:Generische_Programmierung_in_Java" id="wx38">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/Generics_in_Java" class="external" wx:linktype="interwiki" wx:pagename="en:Generics_in_Java" id="wx39">English</a></div>
</body>
<wx:templatearguments for="wx_t1"><wx:argument name="1">
<p id="wx40">Java 5</p>
</wx:argument></wx:templatearguments>
</html>
