This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:generics [2015/03/15 19:47] gthanos |
java:generics [2015/03/15 20:04] gthanos |
||
---|---|---|---|
Line 69: | Line 69: | ||
Εδώ ο compiler αντιλαμβάνεται ότι δημιουργείται μία μεταβλητή τύπου ''Box<Integer>'' και δημιουργεί ένα αντικείμενο αυτού του τύπου | Εδώ ο compiler αντιλαμβάνεται ότι δημιουργείται μία μεταβλητή τύπου ''Box<Integer>'' και δημιουργεί ένα αντικείμενο αυτού του τύπου | ||
- | **Προσοχή:** το παραπάνω δεν είναι ίδιο με | + | **Προσοχή:** το παραπάνω δεν είναι ίδιο με το παρακάτω. |
<code java> | <code java> | ||
Box<Integer> integerBox = new Box(); | Box<Integer> integerBox = new Box(); | ||
</code> | </code> | ||
+ | |||
+ | Στο τελευταίο ο compiler θα εκδώσει το παρακάτω warning. | ||
+ | <code> | ||
+ | Note: BoxUsage.java uses unchecked or unsafe operations. | ||
+ | Note: Recompile with -Xlint:unchecked for details. | ||
+ | </code> | ||
+ | |||
+ | ===== Παραμετρικοί τύποι δεδομένων με πολλές παραμέτρους ===== | ||
+ | |||
+ | <code java Pair.java> | ||
+ | public interface Pair<K, V> { | ||
+ | public K getKey(); | ||
+ | public V getValue(); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | <code java OrderedPair.java> | ||
+ | public class OrderedPair<K, V> implements Pair<K, V> { | ||
+ | |||
+ | private K key; | ||
+ | private V value; | ||
+ | |||
+ | public OrderedPair(K key, V value) { | ||
+ | this.key = key; | ||
+ | this.value = value; | ||
+ | } | ||
+ | |||
+ | public K getKey() { return key; } | ||
+ | public V getValue() { return value; } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Με βάση τον παραπάνω κώδικα μπορείτε να δημιουργήσετε αντικείμενα επιμέρους τύπων ως εξής: | ||
+ | <code java OrderedPairUsage.java> | ||
+ | public class OrderedPairUsage { | ||
+ | public static void main(String args[]) { | ||
+ | Pair<String, Integer> p1 = new OrderedPair<String, Integer>("Even", 8); | ||
+ | Pair<String, String> p2 = new OrderedPair<String, String>("hello", "world"); | ||
+ | OrderedPair<String, Box<Integer>> p = new OrderedPair<>("primes", new Box<Integer>()); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||