java:generic_methods
This is an old revision of the document!
Παραμετρικές Μέθοδοι (Generic Methods)
Generic Methods ονομάζονται οι μέθοδοι οι οποίες εισάγουν τους δικούς τους παραμετρικούς τύπους δεδομένων, χωρίς η κλάση στην οποία ανήκουν να εισάγει αντίστοιχους παραμετρικούς τύπους δεδομένων, όπως παρακάτω:
- 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()); } }
Ο κώδικας για να καλέσετε μία έκδοση της παραπάνω μεθόδου δίνεται παρακάτω
- 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"); } } }
Μπορείτε να αντικαταστήσετε την τελευταία γραμμή με την γραμμή σε σχόλια. Παρατηρήστε ότι ο compiler δεν σας αφήνει να καλέσετε την μη παραμετρική έκδοση της μεθόδου. Επίσης αν χρησιμοποιήσετε άλλους τύπους δεδομένων (π.χ. <Integer, Integer>
) τότε και πάλι θα λάβετε ένα μήνυμα λάθους.
java/generic_methods.1426773562.txt.gz · Last modified: 2015/03/19 13:59 by gthanos