как создать универсальный конструктор для универсального класса в 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 тогда?

553   3  

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

    Ничего не найдено.