我已经从 apache-commons-3 扩展了类,以添加我自己的实用程序函数,这些函数在它们中不可用。例如:
public class CollectionUtils extends org.apache.commons.collections.CollectionUtils
{
/**
* Similar to collection.contains(member) except just doesn't throw NPE when set is null, simply returns false
* @param collection
* @param member
* @return
*/
public static <K> boolean contains(Collection<K> collection,K member)
{
return collection!=null && collection.contains(member);
}
}
这解决了我通过同一个类使用我的函数和公共函数的目的CollectionUtils
。
但是,Apache 在版本 4 中通过在实用程序类中引入私有构造函数删除了可扩展性。这里也有同样的讨论。
现在,如果我升级到版本 4,我的代码就会中断。扩展实用程序类以添加自定义/特定实用程序方法的最佳实践是什么?