我想以泛型的方式创建一个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);
}
}
错误消息为:"Syntax error on token“>",标识符应在此令牌之后出现”
那么我应该如何在java中创建一个泛型构造函数呢?
发布于 2011-12-30 22:28:09
您需要从构造函数的签名中删除<T, E>
:它已经隐式存在了。
public KeyValue(T k , E v) // No compile errors here :)
{
setKey(k);
setValue(v);
}
发布于 2011-12-30 22:29:29
编写构造函数的方式与编写其他方法完全相同
public KeyValue(T k , E v)
{
setKey(k);
setValue(v);
}
发布于 2018-04-30 01:31:36
构造函数可以编写为
public<T,E> KeyValue(T k,E v){}
但这并不是必须的,我们也可以编写public KeyValue(T k,E v)
https://stackoverflow.com/questions/8680442
复制相似问题