Javaコードの記述に費やしたすべての時間にわたって、クラスパスにしっかりと埋め込まれた有用な
サードパーティライブラリのセットを形成しました。プロジェクト。 これは、Spring、Struts、Hibernateなどの「モンスター」に関するものではなく(これもまた別の話です)、Java SE APIのギャップを埋めて、あちこちで1ダースまたは2行余分なコード行を節約するユーティリティに関するものです。 この情報をhabrasocietyと共有したいと思います。特にJavaを暴風雨にさらし始めたばかりの人にとって有用であり、生産性を少しだけ高めることができることを願っています。
したがって、コメントで
よく使用するクラスとメソッドのリスト:
Apache Commons:コレクションJava SE Collections Frameworkを大幅に補完する非常に優れたライブラリ。 特にJava 2 SE 1.4.2にこだわっている(時々起こる)人にとって非常に便利であり、
LinkedHashMapを夢見てい
ます :)
- CollectionUtils 。 おそらく「おいしい」の束を持つ最も一般的に使用されるクラス:
- filter / find(コレクション、述語)-述語によるフィルタリングと検索。
- forAllDo(コレクション、クロージャ)-各要素に対してクロージャを実行します(Javaにクロージャを追加することはありますか?)
- is(Not)Empty(Collection)-呼び出す前にnullをチェックしないようにします(些細なことですが、素晴らしい、java.util.Collection.isEmpty()と比較してください)
- isEqualCollection(Collection、Collection)-2つのコレクションを手動で比較する必要はありませんでしたか?
- さらに便利なメソッドが数十あります。
- ClosureUtils -Javaでの本格的なClosureの登場を長い間夢見ていた人向け。
- さまざまなレベルのユーティリティの他の多くのクラス(以下では、私のケースで最も頻繁に使用されるものをリストします)。
Apache Commons:DbUtils- Dbutils
- closeQuietly(Connection、Statement、ResultSet)-JDBCを直接使用していますか? ネストされたif / try / catch /最終的にnullチェックでリソースを適切に閉じるために、常に書き込みにうんざりしていませんか? それからここに:)典型的なコード「教科書から」
{
//何らかのdb作業を行います
}
catch(例外e){
e.printStackTrace();
}
最後に{
{
if(rs!= null)
rs.close();
}
catch(例外e){
e.printStackTrace();
}
{
if(st!= null)
st.close();
}
catch(例外e){
e.printStackTrace();
}
{
if(conn!= null)
conn.close();
}
catch(例外e){
e.printStackTrace();
}
}
よりエレガントな形状を取ります。
{
//何らかのdb作業を行います
}
catch(例外e){
e.printStackTrace();
}
最後に{
DbUtils.closeQuietly(conn、st、rs);
}
Apache Commons:IOファイルを扱うことは、Java評論家が使用したいプラットフォームの最強の側面ではありません(場合によっては当然)。 たとえば、
java.io.File.copy()を実装する要求は10年間
ハングし
ています。 Commons IOは部分的に役立ちます:
- Fileutils
- copyDirectory(ファイル、ファイル)-ディレクトリのコピー
- copyFile(ファイル、ファイル)-ファイルのコピー
- listFiles(File、String []、boolean)-拡張子および再帰によるファイルのリスト。 java.io.Fileが学んだことはない。
- readFileToString(ファイル、文字列)
- writeStringToFile(ファイル、文字列)
- IOUtils
- closeQuietly(Reader / Writer / InputStream / OutputStream)-DbUtilsのように、スパゲッティのようなコードを回避するのに役立ちます。
- copy(InputStream、OutputStream)はクラシックです。
Apache Commons:ラング文字列、リフレクション、シリアル化、オブジェクト、およびシステムを操作するためのユーティリティ。 おそらく、Apache Commonsで最も使用されているライブラリです。
- StringUtils-文字列を操作するための膨大な数のメソッド。
- is(Not)Blank / Empty(String)
if (s!=null && s.trim().length()>0)
を忘れる時がif (s!=null && s.trim().length()>0)
。
- StringEscapeUtils
- (un)escapeSql(String)-PreparedStatementを使用しない人向け:)
- (un)escapeHtml(String)-それなしのWeb開発者はどこにいますか。
- ToStringBuilder
- reflectionToString(オブジェクト)は、反射ベースのtoString()の実装です。 つまり、オブジェクトのフィールドを追加または削除すると、メソッドの結果が自動的に変更されます。 怠け者のために、私のように:)
- EqualsBuilderとHashCodeBuilder
- reflectionEquals / HashCode(オブジェクト)。 もちろん、メソッドは一緒に使用する必要があります。 2つのオブジェクトが等しいとは、 すべてのフィールドの値が等しいことを意味する場合に適しています。 Eclipseユーザーは、「hashCode()およびequals()を生成」というメニューオプションが長い間存在してきたことに反対します。 ただし、 これら 2つのビルダーは、フィールドの追加など、オブジェクトの進化中にオブジェクトの構造的な変更を自動的に考慮します。
- ExceptionUtils
- getFullStrackTrace(スロー可能)。 13年の間、java.lang.Throwableは、文字列の形式でトレースを生成する単純だが必要なメソッドとしてまだ登場していません...
毎日jarファイルを使用
することについてのコメントとアドバイスを聞いてうれしいです。