User Tools

Site Tools


java:generics_multiple_params

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

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

Pair.java
public interface Pair<K, V> {
    public K getKey();
    public V getValue();
    public void setKey(K key);
    public void setValue(V value);
}
SimplePair.java
public class SimplePair<K, V> implements Pair<K,V> {
 
    private K key;
    private V value;
 
    public SimplePair(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; }
}

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

SimplePairUsage.java
public class SimplePairUsage {
  public static void main(String args[]) {
    Pair<String, Integer> p1 = new SimplePair<String, Integer>("Even", 8);
    Pair<String, String>  p2 = new SimplePair<String, String>("hello", "world");
    SimplePair<String, Box<Integer>> p3 = new SimplePair<>("primes", new Box<Integer>());
    // the following is not allowed
    Pair<String, Integer> p4 = new SimplePair<>("hello", "world");
  }
}
java/generics_multiple_params.txt · Last modified: 2020/03/10 09:52 by gthanos