java:generic_methods

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
java:generic_methods [2015/03/15 20:35]
gthanos created
java:generic_methods [2016/02/26 11:15] (current)
Line 1: Line 1:
-====== Generic Methods ======+====== ​Παραμετρικές Μέθοδοι (Generic Methods======
  
-Generic Methods ονομάζονται οι μέθοδοι οι οποίες εισάγουν τους δικούς τους παραμετρικούς τύπους δεδομένων,​ όπως παρακάτω +Generic Methods ονομάζονται οι μέθοδοι οι οποίες εισάγουν τους δικούς τους παραμετρικούς τύπους δεδομένων,​ χωρίς η κλάση στην οποία ανήκουν να εισάγει αντίστοιχους παραμετρικούς τύπους δεδομένων,​ όπως παρακάτω: 
-<code java +<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>​ 
 + 
 +Μπορείτε να αντικαταστήσετε την τελευταία γραμμή με την γραμμή σε σχόλια. Ο compiler έχει την δυνατότητα να αντιλαμβάνεται τους τύπους των παραμέτρων της μεθόδου από τα ορίσματα της μεθόδου. 
 + 
 +Δοκιμάστε να μεταγλωττίσετε τις παρακάτω δύο παραλλαγές του κώδικα και δείτε τα μηνύματα που θα σας βγάλει ο compiler. 
 +<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>​compare(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.compare(p1,​ p2); 
 +    if( same ) { 
 +      System.out.println("​p1 is equal to p2"​);​ 
 +    }  
 +    else { 
 +      System.out.println("​p1 is NOT equal to p2"​);​ 
 +    } 
 +  } 
 +
 +</​code>​
  
java/generic_methods.1426451702.txt.gz · Last modified: 2016/02/26 11:15 (external edit)