User Tools

Site Tools


java:generics_multiple_params

This is an old revision of the document!


Παραμετρικοί τύποι δεδομένων με πολλές παραμέτρους

Δείτε το παρακάτω παράδειγμα, όπου έχουμε ένα interface και μία κλάση με δύο παραμέτρους.

Pair.java
public interface Pair<K, V> {
    public K getKey();
    public V getValue();
    public void setKey(K key);
    public void setValue(V value);
}
OrderedPair.java
public class OrderedPair<K, V> implements Pair<K,V> {
 
    private K key;
    private V value;
 
    public OrderedPair(K key, V value) {
        this.key = key;
        this.value = value;
    }
 
    public void setKey(K key) { this.key = key; }
    public void setValue(V value) { this.value = value; }
    public K getKey()   { return key; }
    public V getValue() { return value; }
}

Με βάση τον παραπάνω κώδικα μπορείτε να δημιουργήσετε αντικείμενα επιμέρους τύπων ως εξής:

OrderedPairUsage.java
public class OrderedPairUsage {
  public static void main(String args[]) {
    Pair<String, Integer> p1 = new OrderedPair<String, Integer>("Even", 8);
    Pair<String, String>  p2 = new OrderedPair<String, String>("hello", "world");
    OrderedPair<String, Box<Integer>> p = new OrderedPair<>("primes", new Box<Integer>());
    // the following is not allowed
    Pair<String, Integer> p1 = new OrderedPair<>("hello", "world");
  }
}
java/generics_multiple_params.1486480015.txt.gz · Last modified: 2017/02/07 15:06 (external edit)