如何在Java中为generics类创buildgenerics构造函数?

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

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