如何在java中为泛型类创建泛型构造函数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (73)

我想要创建一个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中创建一个通用构造函数呢?

提问于
用户回答回答于

你需要移除<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);
    }

扫码关注云+社区