как создать универсальный конструктор для универсального класса в java?
Я хочу создать класс KeyValue, но в общем виде, и это то, что я написал:
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);
}
}
ошибка говорит : "синтаксическая ошибка на токене">", идентификатор ожидается после этого токена"
Как я должен создать универсальный конструктор в java тогда?
3 ответов:
вам нужно удалить
<T, E>из подписи конструктора: он уже существует неявно.public KeyValue(T k , E v) // No compile errors here :) { setKey(k); setValue(v); }
написать конструктор точно так же, как вы написали другими методами
public KeyValue(T k , E v) { setKey(k); setValue(v); }
конструктор может быть записан как
public<T,E> KeyValue(T k,E v){}но это не обязательно и мы можем написать
public KeyValue(T k,E v)
Comments