私はapache-commons-3からクラスを拡張し、使用できない自分のユーティリティ関数を追加しました。例えば:javaでユーティリティクラスを拡張するためのベストプラクティス
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で拡張性を取り除いています。 hereについての議論もあります。
バージョン4にアップグレードするとコードが破損しています。カスタム/特定のユーティリティメソッドを追加するためのユーティリティクラスを拡張するベストプラクティスは何ですか?