Home » Java » how to create a generic constructor for a generic class in java?

how to create a generic constructor for a generic class in java?

Posted by: admin December 20, 2017 Leave a comment

Questions:

I want to create a KeyValue class but in generic manner and this is what I’ve written:

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);
    }
}

the error says : “Syntax error on token “>”, Identifier expected after this token”

how should I create a generic constructor in java then?

Answers:

You need to remove <T, E> from the constructor’s signature: it’s already there implicitly.

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

Questions:
Answers:

Write constructor exactly the same way you wrote other methods

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