繁体   English   中英

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

[英]how to create a generic constructor for a generic class in 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中创建通用构造函数呢?

你需要从构造函数的签名中删除<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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM