Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision |
java:generic_bounded_types [2017/02/07 17:08] – gthanos | java:generic_bounded_types [2020/03/11 07:40] (current) – external edit 127.0.0.1 |
---|
| |
<code java> | <code java> |
public static void process(List<? extends Number> list) { /* ... */ } | public static void process(List<? extends Number> list) { /* */ } |
</code> | </code> |
| |
Στην παραπάνω δήλωση ο τύπος δεδομένων της παραμετρικής κλάσης ''List'' μπορεί να είναι η κλάση ''Number'' η οποιαδήποτε υποκλάση της ''Number'' (π.χ ''Integer'', ''Double'', ''Float''). Ο παραπάνω τύπος είναι φραγμένος προς τα πάνω, αλλά όχι προς τα κάτω. | Στην παραπάνω δήλωση ο τύπος δεδομένων της παραμετρικής κλάσης ''java.util.List'' μπορεί να είναι η κλάση ''java.lang.Number'' η οποιαδήποτε υποκλάση της ''java.lang.Number'' (π.χ ''Integer'', ''Double'', ''Float''). Ο παραπάνω τύπος είναι φραγμένος προς τα πάνω. |
| |
===== Κάτω φραγμένοι παραμετρικοί τύποι (Lower Bounded Wildcards) ===== | ===== Κάτω φραγμένοι παραμετρικοί τύποι (Lower Bounded Wildcards) ===== |
</code> | </code> |
| |
Στην παραπάνω δήλωση ο τύπος δεδομένων της παραμετρικής κλάσης ''List'' μπορεί να είναι η κλάση ''Integer'' ή οποιαδήποτε υπερ-κλάση της ''Integer'' (π.χ ''Number''). | Στην παραπάνω δήλωση ο τύπος δεδομένων της παραμετρικής κλάσης ''java.util.List'' μπορεί να είναι η κλάση ''java.lang.Integer'' ή οποιαδήποτε υπερ-κλάση της ''java.lang.Integer'' (π.χ ''java.lang.Object''). |
| |
| |
</code> | </code> |
| |
Σε αναλογία με το παραπάνω, εάν θέλουμε να γράψουμε μία μέθοδο που να τυπώνει μόνο αριθμούς (υποκλάσεις της //abstract// κλάσης ''Number'') τότε αρκεί να γράψουμε το παρακάτω | Σε αναλογία με το παραπάνω, εάν θέλουμε να γράψουμε μία μέθοδο που να τυπώνει μόνο αριθμούς, αλλά όχι String (δηλαδή υποκλάσεις της //abstract// κλάσης ''Number'') τότε αρκεί να γράψουμε το παρακάτω: |
| |
<code java> | <code java> |
</code> | </code> |
| |
|Προηγούμενο: [[:java:generic_inheritance | Κληρονομικότητα Παραμετρικών Τύπων ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:generic_bounded_types_inheritance | Σχέσεις κληρονομικότητας φραγμένων παραμετρικών τύπων δεδομένων ]]| | |Προηγούμενο: [[:java:generics_inheritance | Κληρονομικότητα Παραμετρικών Τύπων ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:generic_bounded_types_inheritance | Σχέσεις κληρονομικότητας φραγμένων παραμετρικών τύπων δεδομένων ]]| |
| |
| |
| |