我在 Java 中使用泛型和几个类。我想找到一种方法来减少我需要添加的参数数量。
public abstract class KeyValueProducer<O,K,V> {
....
}
public class KeyValueProducerMapper<O,K,V,KVP extends KeyValueProducer<O,K,V>> {
public static <O,K,V,KVP extends KeyValueProducer<O,K,V>> KeyValueProducerMapper<O,K,V,KVP> create(Set<KVP> set) {
return new KeyValueProducerMapper(set);
}
public KeyValueProducerMapper(Set<KVP> kvps) {
...
}
public V getVal(K key) {
return map.get(key).getValue();
}
}
当我想创建我的 KeyValueProducerMapper 的实例时,看起来我需要写出:
Set<KVP> set;
....
KeyValueProducerMapper<K,V,O,KVP> kvpm = new KeyValueProducerMapper(set);
这似乎有点冗长和荒谬。有什么办法可以像这样定义它吗?
KeyValueProducerMapper<KVP> kvpm = new KeyValueProducerMapper(set);