This shows you the differences between two versions of the page.
java:generic_methods [2015/03/19 14:02] gthanos |
java:generic_methods [2016/02/26 11:15] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Παραμετρικές Μέθοδοι (Generic Methods) ====== | ||
- | |||
- | Generic Methods ονομάζονται οι μέθοδοι οι οποίες εισάγουν τους δικούς τους παραμετρικούς τύπους δεδομένων, χωρίς η κλάση στην οποία ανήκουν να εισάγει αντίστοιχους παραμετρικούς τύπους δεδομένων, όπως παρακάτω: | ||
- | <code java Util.java> | ||
- | public class Util { | ||
- | public static <K, V> boolean compare(Pair<K, V> p1, Pair<K, V> p2) { | ||
- | return p1.getKey().equals(p2.getKey()) && | ||
- | p1.getValue().equals(p2.getValue()); | ||
- | } | ||
- | } | ||
- | </code> | ||
- | |||
- | Ο κώδικας για να καλέσετε μία έκδοση της παραπάνω μεθόδου δίνεται παρακάτω | ||
- | <code java OrderedPairUsage.java> | ||
- | public class OrderedPairUsage { | ||
- | public static void main(String args[]) { | ||
- | Pair<Integer, String> p1 = | ||
- | new OrderedPair<>(1, "Black"); | ||
- | Pair<Integer, String> p2 = | ||
- | new OrderedPair<>(1, "Red"); | ||
- | boolean same = Util.<Integer, String>compare(p1, p2); | ||
- | //OR boolean same = Util.compare(p1, p2); | ||
- | if( same ) { | ||
- | System.out.println("p1 is equal to p2"); | ||
- | } | ||
- | else { | ||
- | System.out.println("p1 is NOT equal to p2"); | ||
- | } | ||
- | } | ||
- | } | ||
- | </code> | ||
- | |||
- | Μπορείτε να αντικαταστήσετε την τελευταία γραμμή με την γραμμή σε σχόλια. Επίσης αν χρησιμοποιήσετε άλλους τύπους δεδομένων (π.χ. ''<Integer, Integer>'') τότε και πάλι θα λάβετε ένα μήνυμα λάθους. | ||