我在Java中使用泛型與幾個類。我想找到一種方法來減少我需要添加的參數數量。減少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);
答案是否定的,如果您覺得事情不對,您可能需要重新審視您的設計。 – DaveRlz
就個人而言,我會避免使用'KVP'(可能會使用'P')作爲通用替代品之一。主要是因爲你已經使用'K'和'V'作爲另外兩個替代品(是的,我知道它們是不同的,而且它有點相關 - 但我只是覺得那個三個字母的人在做'別的東西「)。 –