2012-12-06 11 views

risposta

14
A<T extends I1, I2> 

è un tipo A con due parametri

  1. T che deve essere un sottotipo di I1
  2. I2

Si può leggere questo come "A <preposizione> tipo T che estende la preposizione I1 < > t ipo I2" , così SortedMap<Key extends comparable, Value> è una 'mappa da chiave tipo comparabile al tipo di valore'


A<T extends I1 & I2> 

è un tipo A con un singolo parametro

  1. T che deve essere un sottotipo di I1 e un sottotipo di I2

È possibile leggere come "A <preposizione> tipo T che si estende I1 e I2" così un SortedSerializableSet<T extends Serializable & Comparable> può essere letto 'un insieme ordinato di elementi di tipo T che è sia serializzabile e comparabili'

+0

Hai ragione! Sono stato disturbato da "extends" che mi ha fatto pensare che I1 e I2 fossero associati a T ... Vergogna su di me ... – ncenerar

+0

Nota anche che la coma (',') viene usata quando una classe implementa interfacce multiple ma '&' non è permesso lì ... Questo è fonte di confusione ... – ncenerar

+0

@NicolasCenerario, sono d'accordo che ',' è confuso. Idealmente nelle firme dei tipi avrebbero riutilizzato 'implements' o usato la punteggiatura come (' | ') che trasmette l'idea che si sta espandendo il set di left-hand-sides che può accettare i valori del tipo dichiarato. –

Problemi correlati