如何在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); }