2

我有一个泛型类,它扩展了另一个泛型类。

抽象类有 2 个类型参数,但我的函数中只需要一个。

只是为它分配一个随机的字符串类型是否可以节省,或者这有什么缺点吗?

public abstract class AbstractFoo<T, B>
{
   public abstract void read(T item);
}

public class LittleFoo extends AbstractFoo<byte[], String>
{
   @Override
   public void read(byte[] item)
   {
      // work here
   }
}
4

2 回答 2

5

或者您可以使用java.lang.Void而不是String.

于 2012-11-20T18:43:49.360 回答
3

不,这确实没有任何缺点,在我看来,这似乎是一种简单的方法。

此外,您可能需要考虑使用composition而不是extension。例如,看一下以下的HashSet实现java.util

87   public class HashSet<E>
88       extends AbstractSet<E>
89       implements Set<E>, Cloneable, java.io.Serializable
90   {
91       static final long serialVersionUID = -5024744406713321676L;
92   
93       private transient HashMap<E,Object> map;
94   
95       // Dummy value to associate with an Object in the backing Map
96       private static final Object PRESENT = new Object();

AHashSet基本上是 a HashMap,但只考虑键集(因此虚拟变量PRESENT,它只是一个占位符)。你也许可以做类似的事情。

于 2012-11-20T18:40:58.667 回答