66 votes

comment créer un constructeur générique pour une classe générique en java ?

Je veux créer une classe KeyValue mais de manière générique et voici ce que j'ai écrit :

public class KeyValue<T,E> 
{

    private T key;
    private E value;
    /**
     * @return the key
     */
    public T getKey() {
        return key;
    }
    /**
     * @param key the key to set
     */
    public void setKey(T key) {
        this.key = key;
    }
    /**
     * @return the value
     */
    public E getValue() {
        return value;
    }
    /**
     * @param value the value to set
     */
    public void setValue(E value) {
        this.value = value;
    }

    public KeyValue <T, E>(T k , E v) // I get compile error here
    {
        setKey(k);
        setValue(v);
    }
}

l'erreur dit : "Erreur de syntaxe sur le jeton ">", Identifiant attendu après ce jeton".

comment créer un constructeur générique en java alors ?

84voto

dasblinkenlight Points 264350

Vous devez retirer <T, E> de la signature du constructeur : il est déjà là implicitement.

public KeyValue(T k , E v) // No compile errors here :)
{
    setKey(k);
    setValue(v);
}

3voto

narek.gevorgyan Points 2011

Ecrivez le constructeur exactement de la même façon que vous avez écrit les autres méthodes.

public KeyValue(T k , E v) 
    {
        setKey(k);
        setValue(v);
    }

1voto

Le constructeur peut être écrit comme suit

public<T,E> KeyValue(T k,E v){}

mais ce n'est pas nécessaire, nous pouvons aussi écrire public KeyValue(T k,E v)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X