This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
test:test_2015 [2015/01/21 09:42] Daniel Ciocirlan [Clase abstracte și interfețe] |
test:test_2015 [2015/01/21 12:18] (current) Daniel Ciocirlan [Colecții și genericitate] |
||
|---|---|---|---|
| Line 367: | Line 367: | ||
| **Explicație**: Ideea cheie în această întrebare și în lucrul cu generics în general este că, de exemplu (exemplul nostru), dacă ''Student'' e subclasă a ''Person'', atunci ''ArrayList<Student>'' **nu** e subclasă a ''ArrayList<Person>'', deci atribuirea nu este corectă (un astfel de exemplu este și în [[:laboratoare:genericitate#genericitatea-in-subtipuri|laboratorul de genericitate]]). | **Explicație**: Ideea cheie în această întrebare și în lucrul cu generics în general este că, de exemplu (exemplul nostru), dacă ''Student'' e subclasă a ''Person'', atunci ''ArrayList<Student>'' **nu** e subclasă a ''ArrayList<Person>'', deci atribuirea nu este corectă (un astfel de exemplu este și în [[:laboratoare:genericitate#genericitatea-in-subtipuri|laboratorul de genericitate]]). | ||
| - | Matching-ul tipului generic (cel dintre paranteze unghiulare) este făcut la compilare și singura variantă care trece de această verificare este varianta în bold. Am fi putut avea matching corect cu wildcard-uri, dar nu a fost cazul aici. Pentru mai multe detalii puteți să citiți despre //covarianță/contravarianță// și despre //type erasure// ca să înțelegeți motivele pentru care Java se comportă astfel. | + | Matching-ul tipului generic (cel dintre paranteze unghiulare) este făcut la compilare și singura variantă care trece de această verificare este varianta în bold. Am fi putut avea matching corect cu wildcard-uri, dar nu a fost cazul aici. Pentru mai multe detalii puteți să citiți despre [[http://en.wikipedia.org/wiki/Covariance_and_contravariance_%28computer_science%29 | covarianță și contravarianță]] și despre [[http://docs.oracle.com/javase/tutorial/java/generics/erasure.html | type erasure]] ca să înțelegeți motivele pentru care Java se comportă astfel. |
| - | + | ||
| == Excepții == | == Excepții == | ||