La funzionalità di tipo generico permette al programmatore di definire facoltativamente il tipo di valori che vengono memorizzati nelle classi di insiemi built - in , come HashMap e ArrayList . Questo sostituisce il codice 1.4 : = new ArrayList ( ) per
ArrayList dati;
data.add ( nuova doppia ( 4,0) ) ;
Doppia value = ( doppio ) i dati . get ( 0 ) ;
Con il codice 1.5 :
ArrayList data.add ( nuova doppia ( 4.0) ; valore Double = data.get ( 0 ) ; la dichiarazione di ArrayList diventa leggermente più ingombrante , ma i programmatori in grado di riconoscere i benefici il compilatore ora gestisce la fusione di dati e . l'errore potenzialmente incidente che causano fuso nella terza riga del codice 1.4 e 'colto in fase di compilazione . Uno dei fastidi meschini è stato rimosso dal lavoro con gli oggetti e collezioni . maggior parte delle volte , i dati numerici grezzi saranno conservati in primitivi , tipi di dati non oggetto come int e double . Tuttavia, solo il loro oggetto , gli equivalenti di classe a base può essere conservato in una collezione . nel 1.4 , il programmatore ha dovuto creare manualmente un nuovo oggetto ogni volta che lui o lei voleva memorizzare un numero in una collezione , e lanciare di nuovo a un tipo di dati primitivo quando è stato tirato fuori . Autoboxing Java permette di gestire automaticamente, in modo che il codice : data.add ( nuova doppia ( 4,0) ) ; ora può essere sostituito con : data.add ( 4.0) ; Java gestirà la conversione da "doppia " a " double" automaticamente . Quando la memorizzazione dei dati in un array o uno qualsiasi dei dati di raccolta strutture , il programmatore può accorciare il tradizionale ciclo for dal familiare : for (int x = 0; x < data.size (); x + + ) { //fare qualcosa con ogni doppio in " dati " } Per il più compatto e di facile lettura : per ( doppia d : dati ) { //fare Tipi qualcosa con ogni doppio in " dati " } Java 1.5 ha aggiunto il tipo " enum " per la lingua . Tradizionalmente, se un programmatore voleva tenere traccia di tutti i possibili valori di una opzione , lui o lei ha dovuto mappare parole di interi utilizzando il " int finale statico" tipo di dati , in questo modo: public class Semaforo { int color = 0; static final int ROSSO = 0; static final int GIALLO = 1; final int VERDE statico = 2; } Questo è stato noioso e soggetto ad errori , ad esempio , cosa succede se il colore diventa Enum rende la soluzione molto più elegante. " 4 ? " : Semaforo Colore = Stoplight.RED ; public enum Semaforo { ROSSO, GIALLO , VERDE } ; differenza della vecchia maniera " statica finale " , il compilatore ora sa che cosa opzioni valide sono per " Semaforo " e li può far valere per noi. come bonus aggiuntivo , se il valore di "Colore" è stampato sulla console , verrà stampata come la parola inglese , e non come un numero .
autoboxing
avanzata per loop
enumerati
Informazioni correlate
Programmazione © www.354353.com