[英]Is it possible to create a generic class with empty constructor in 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.