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
Last revision Both sides next revision
java:generic_methods [2015/03/19 14:20]
gthanos
java:generic_methods [2020/03/10 09:58]
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 areEqual(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 12: Line 13:
  
 Ο κώδικας για να καλέσετε μία έκδοση της παραπάνω μεθόδου δίνεται παρακάτω Ο κώδικας για να καλέσετε μία έκδοση της παραπάνω μεθόδου δίνεται παρακάτω
-<code java OrderedPairUsage.java> +<code java SimplePairUsage.java> 
-public class OrderedPairUsage {+public class SimplePairUsage {
   public static void main(String args[]) {   public static void main(String args[]) {
-    Pair<Integer, String> p1 =  +    Pair<Integer, String> p1 = new SimplePair<>(1, "Black"); 
-      new OrderedPair<>(1, "Black"); +    Pair<Integer, String> p2 = new SimplePair<>(1, "Red"); 
-    Pair<Integer, String> p2 =  +    boolean same = Util.<Integer, String>areEqual(p1, p2); 
-      new OrderedPair<>(1, "Red"); +    //OR boolean same = Util.isEqual(p1, p2);
-    boolean same = Util.<Integer, String>compare(p1, p2); +
-    //OR boolean same = Util.compare(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 30:
 </code> </code>
  
-Μπορείτε να αντικαταστήσετε την τελευταία γραμμή με την γραμμή σε σχόλια. Ο compiler έχει την δυνατότητα να αντιλαμβάνεται τους τύπους των παραμέτρων της μεθόδου από τα ορίσματα της μεθόδου.+Μπορείτε να αντικαταστήσετε την τελευταία γραμμή με την γραμμή σε σχόλια. Ο //compiler// έχει την δυνατότητα να αντιλαμβάνεται τους τύπους των παραμέτρων της μεθόδου από τα ορίσματα της μεθόδου.
  
 +<WRAP todo 80% center round>
 Δοκιμάστε να μεταγλωττίσετε τις παρακάτω δύο παραλλαγές του κώδικα και δείτε τα μηνύματα που θα σας βγάλει ο compiler. Δοκιμάστε να μεταγλωττίσετε τις παρακάτω δύο παραλλαγές του κώδικα και δείτε τα μηνύματα που θα σας βγάλει ο compiler.
-<code java OrderedPairUsage.java> +</WRAP> 
-public class OrderedPairUsage {+ 
 +<code java SimplePairUsage.java> 
 +public class SimplePairUsage {
   public static void main(String args[]) {   public static void main(String args[]) {
-    Pair<Integer, String> p1 =  +    Pair<Integer, String> p1 = new SimplePair<>(1, "Black"); 
-      new OrderedPair<>(1, "Black"); +    Pair<Integer, String> p2 = new SimplePair<>(1, "Red"); 
-    Pair<Integer, String> p2 =  +    boolean same = Util.<Integer, Integer>areEqual(p1, p2);
-      new OrderedPair<>(1, "Red"); +
-    boolean same = Util.<Integer, Integer>compare(p1, p2);+
     if( same ) {     if( same ) {
       System.out.println("p1 is equal to p2");       System.out.println("p1 is equal to p2");
Line 52: Line 52:
 </code> </code>
  
-<code java OrderedPairUsage.java> +<code java SimplePairUsage.java> 
-public class OrderedPairUsage {+public class SimplePairUsage {
   public static void main(String args[]) {   public static void main(String args[]) {
-    Pair<Integer, String> p1 =  +    Pair<Integer, String> p1 = new SimplePair<>(1, "Black"); 
-      new OrderedPair<>(1, "Black"); +    Pair<Integer, Integer> p2 = new SimplePair<>(1, 3); 
-    Pair<Integer, Integer> p2 =  +    boolean same = Util.isEqual(p1, p2);
-      new OrderedPair<>(1, 3); +
-    boolean same = Util.compare(p1, p2);+
     if( same ) {     if( same ) {
       System.out.println("p1 is equal to p2");       System.out.println("p1 is equal to p2");
Line 69: Line 67:
 } }
 </code> </code>
 +
 +|Προηγούμενο: [[:java:generics_raw | Απλοί παραμετρικοί τύποι δεδομένων (Raw Generic Types) ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:generics_inheritance | Κληρονομικότητα Παραμετρικών Τύπων ]] |
 +
  
java/generic_methods.txt · Last modified: 2020/03/10 10:19 by gthanos