User Tools

Site Tools


java:generic_methods

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
Next revision Both sides next revision
java:generic_methods [2015/03/19 14:02]
gthanos
java:generic_methods [2018/04/15 08:08]
gthanos
Line 1: Line 1:
-====== Παραμετρικές Μέθοδοι (Generic Methods) ======+====== Παραμετρικοί τύποι δεδομένων σε μεθόδους (Generic Methods) ====== 
 + 
 +//Generic Methods// ονομάζονται οι μέθοδοι οι οποίες εισάγουν τους δικούς τους παραμετρικούς τύπους δεδομένων, χωρίς η κλάση στην οποία ανήκουν να εισάγει αντίστοιχους παραμετρικούς τύπους δεδομένων, όπως παρακάτω:
  
-Generic Methods ονομάζονται οι μέθοδοι οι οποίες εισάγουν τους δικούς τους παραμετρικούς τύπους δεδομένων, χωρίς η κλάση στην οποία ανήκουν να εισάγει αντίστοιχους παραμετρικούς τύπους δεδομένων, όπως παρακάτω: 
 <code java Util.java> <code java Util.java>
 public class Util { public class Util {
-  public static <K, V> boolean compare(Pair<K, V> p1, Pair<K, V> p2) {+  public static <K, V> boolean isEqual(Pair<K, V> p1, Pair<K, V> p2) {
     return p1.getKey().equals(p2.getKey()) &&     return p1.getKey().equals(p2.getKey()) &&
       p1.getValue().equals(p2.getValue());       p1.getValue().equals(p2.getValue());
Line 19: Line 20:
     Pair<Integer, String> p2 =      Pair<Integer, String> p2 = 
       new OrderedPair<>(1, "Red");       new OrderedPair<>(1, "Red");
-    boolean same = Util.<Integer, String>compare(p1, p2); +    boolean same = Util.<Integer, String>isEqual(p1, p2); 
-    //OR boolean same = Util.compare(p1, p2);+    //OR boolean same = Util.isEqual(p1, p2);
     if( same ) {     if( same ) {
       System.out.println("p1 is equal to p2");       System.out.println("p1 is equal to p2");
Line 31: Line 32:
 </code> </code>
  
-Μπορείτε να αντικαταστήσετε την τελευταία γραμμή με την γραμμή σε σχόλια. Επίσης αν χρησιμοποιήσετε άλλους τύπους δεδομένων (π.χ''<Integer, Integer>''τότε και πάλι θα λάβετε ένα μήνυμα λάθους.+Μπορείτε να αντικαταστήσετε την τελευταία γραμμή με την γραμμή σε σχόλια. Ο compiler έχει την δυνατότητα να αντιλαμβάνεται τους τύπους των παραμέτρων της μεθόδου από τα ορίσματα της μεθόδου. 
 + 
 +<WRAP todo 80% center round> 
 +Δοκιμάστε να μεταγλωττίσετε τις παρακάτω δύο παραλλαγές του κώδικα και δείτε τα μηνύματα που θα σας βγάλει ο compiler. 
 +</WRAP> 
 + 
 +<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, Integer>isEqual(p1, p2); 
 +    if( same ) { 
 +      System.out.println("p1 is equal to p2"); 
 +    }  
 +    else { 
 +      System.out.println("p1 is NOT equal to p2"); 
 +    } 
 +  } 
 +
 +</code> 
 + 
 +<code java OrderedPairUsage.java> 
 +public class OrderedPairUsage { 
 +  public static void main(String args[]) { 
 +    Pair<Integer, String> p1 =  
 +      new OrderedPair<>(1, "Black"); 
 +    Pair<Integer, Integer> p2 =  
 +      new OrderedPair<>(1, 3)
 +    boolean same = Util.isEqual(p1, p2); 
 +    if( same ) { 
 +      System.out.println("p1 is equal to p2"); 
 +    }  
 +    else { 
 +      System.out.println("p1 is NOT equal to p2"); 
 +    } 
 +  } 
 +
 +</code> 
 + 
 +|Προηγούμενο: [[:java:generics_raw | Απλοί παραμετρικοί τύποι δεδομένων (Raw Generic Types) ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:generics_inheritance | Κληρονομικότητα Παραμετρικών Τύπων ]] | 
  
java/generic_methods.txt · Last modified: 2020/03/10 10:19 by gthanos