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 indique: "Erreur de syntaxe sur le jeton"> ", identificateur attendu après ce jeton"
comment dois-je créer un constructeur générique dans Java alors?
Vous devez supprimer <T, E>
de la signature du constructeur: c'est déjà là implicitement.
public KeyValue(T k , E v) // No compile errors here :)
{
setKey(k);
setValue(v);
}
Écrivez le constructeur exactement de la même manière que vous avez écrit d'autres méthodes
public KeyValue(T k , E v)
{
setKey(k);
setValue(v);
}
le constructeur peut être écrit comme
public<T,E> KeyValue(T k,E v){}
mais ce n'est pas nécessaire aussi nous pouvons écrirepublic KeyValue(T k,E v)