java:generic_bounded_types

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:generic_bounded_types [2015/03/19 16:30]
gthanos [Σχέσεις κληρονομικότητας φραγμένων παραμετρικών τύπων δεδομένων]
java:generic_bounded_types [2016/02/26 11:15] (current)
Line 73: Line 73:
 </​code>​ </​code>​
  
 +Αντίστοιχα ισχύουν
 +<code java>
 +      List<?>​
 +         |
 +         v
 + ​List<?​ super Integer>
 +         |
 +         v
 + ​List<?​ super Number>
 +         |
 +         v
 +    List<​Number>​
 +</​code>​
  
 +Ανάλογα ισχύουν και τα παρακάτω
 +<code java>
 +              List<? extends Number> ​                                  ​List<?​ super Integer>
 +                        |                         ​και ​                          |
 +       ​------------------------------------ ​                    ​------------------------------------
 +       ​| ​                                 |                     ​| ​                                 |
 +       ​v ​                                 v                     ​v ​                                 v
 +   ​List<​Number> ​                    ​List<​Integer> ​          ​List<​Number> ​                    ​List<​Integer>​
 +</​code>​
  
-προκειμένου ​να δημιουργήσουμε σχέσεις κληρονομικότητας μεταξύ παραμετρικών τύπων δεδομένων, ο μόνος ​τρόπος ​για να το κάνουμε είναι να χρησιμοποιήσουμε φραγμένους ​παραμετρικούς τύπους, όπως παρακάτω+Δοκιμάστε ​να μεταγλωττίσετε τα παρακάτω παραδείγματα κώδικα ​για να επιβεβαιώσετε τα παραπάνω
 +<code java> 
 +List<? extends Νumber> numList = new ArrayList<>​();​ 
 +List<?> ​ objectList = numList; ​  
 +</​code>​
 <code java> <code java>
 List<? extends Integer> intList = new ArrayList<>​();​ List<? extends Integer> intList = new ArrayList<>​();​
-List<? extends Number> ​ numList = intList;  ​// OK. List<? extends Integer> is a subtype of List<? extends Number>+List<? extends Number> ​ numList = intList;  ​
 </​code>​ </​code>​
 +<code java>
 +List<​Integer>​ intList = new ArrayList<>​();​
 +List<? extends Integer> extendedIntList = intList;  ​
 +</​code>​
 +
 +Ανάλογα
 +<code java>
 +List<? super Integer> intList = new ArrayList<>​();​
 +List<?>​ objectList = intList;  ​
 +</​code>​
 +<code java>
 +List<? super Number> numList = new ArrayList<>​();​
 +List<? super Integer> inList = numList;  ​
 +</​code>​
 +<code java>
 +List<​Number>​ numList = new ArrayList<>​();​
 +List<? super Number> extendedNumList = numList; ​
 +</​code>​
 +
 +
  
-Το παρακάτω σχήμα εξηγεί τις σχέσεις κληρονομικότητας που διέπουν (άνω και κάτω) φραγμένους τύπους δεδομένων ​ίστες).+Το παρακάτω σχήμα εξηγεί τις σχέσεις κληρονομικότητας που διέπουν (άνω και κάτω) φραγμένους τύπους δεδομένων ​για τον παραμετρικό τύπο δεδομένων της λίστας.
 {{ :​java:​generics_inheritance4.png?​500 |}} {{ :​java:​generics_inheritance4.png?​500 |}}
  
java/generic_bounded_types.1426782654.txt.gz · Last modified: 2016/02/26 11:15 (external edit)