如何扩展静态最终番石榴实用程序类?

yur*_*ura 1 java inheritance guava

当我使用common-collections时,我已经完成了对这些工具的自定义扩展,例如:

class MyCollectionUtils extends CollectionsUtils {
static myutilityMethod()
static removeDublicate(..)
static myPredicate(...)
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下CollectionsUtils,我只有一个导入的所有功能和我的扩展方法!

在guava中,所有静态实用程序类都是final.

扩展番石榴收集API的最佳方法是什么?例如,新的常用谓词,集合工厂等,集合组合器.

Mic*_*vis 6

对于一个为什么的答案,可读性.读者现在需要了解您的实用程序类的所有内容,即使对于转发到Guava的方法也是如此.

ArrayList<String> myStrings = MySpecialLists.newArrayList();
Run Code Online (Sandbox Code Playgroud)

这是一个标准的ArrayList还是我用默认值初始化的特殊列表?即使我内外都知道番石榴,在我检查你的API之前我也不知道答案.并且客户端代码不能保证它将保持简单的Guava版本(也许你将停止从Guava继承,并且只是自己实现所有列表方法).