我在Java集合和Guava中广泛使用泛型。在使用API时,我对此有很好的理解:
但是,我发现很难使用泛型来开发API。Java泛型有设计模式吗?或者任何对Java泛型的引用也会有所帮助。我读过:
我只熟悉泛型有用的两种模式:
Optional<T>等。Predicate<T>,Function<T>发布于 2013-10-13 04:42:01
大多数标准设计模式都是关于带有继承和组合的标准OO中固有的即席多态。泛型是关于参数多态性的。您的第二个“模式”基本上包含了整个概念,所以我不会称之为模式。
那么参数模式是什么呢?
贷款人的模式呢。什么类型的资源被借出或借用并不重要,因此它可以是一个泛型参数。
工厂也可以用泛型来表示。生成的实例类型是一个参数。
函数式或回调型对象通常都是以void和T-returning风格出现。
这是您所要求的抽象级别吗?
当我想出更多的答案时,我会继续编辑这个答案。
就API而言,我的经验法则是尝试并接受尽可能大的类型,基本上意味着在方法参数中尽可能多地使用通配符,使用方差来决定extends或super是否合适,并返回最特定的可能类型,这意味着尽可能少的类型变量或通配符。
https://stackoverflow.com/questions/19340858
复制相似问题