我已经将此接口编写为框架的一部分。
public interface CollectionFactory {
public <T> Collection<T> newCollection();
}
但我希望实现者能够定义集合的返回类型,这样他们就不必像这样强制转换:
public interface CollectionFactory<C extends Collection> {
public C newCollection();
}
问题是我在 T 上失去了类型安全性。我希望它是
public interface CollectionFactory<C extends Collection> {
public <T> C<T> newCollection();
}
而且我不想像这样提前指定 T :
public interface CollectionFactory<T, C extends Collection<T>> {
public C newCollection();
}
据我所知,这是不可能的。
有人想给我一个惊喜吗?
另外,就像开胃菜一样,有没有人知道类似的东西是否可以用... Scala?