したがって、コメントでよく使用するクラスとメソッドのリスト:
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つのコレクションを手動で比較する必要はありませんでしたか?
- さらに便利なメソッドが数十あります。
- filter / find(コレクション、述語)-述語によるフィルタリングと検索。
- ClosureUtils -Javaでの本格的なClosureの登場を長い間夢見ていた人向け。
- さまざまなレベルのユーティリティの他の多くのクラス(以下では、私のケースで最も頻繁に使用されるものをリストします)。
- 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); }
- closeQuietly(Connection、Statement、ResultSet)-JDBCを直接使用していますか? ネストされたif / try / catch /最終的にnullチェックでリソースを適切に閉じるために、常に書き込みにうんざりしていませんか? それからここに:)典型的なコード「教科書から」
ファイルを扱うことは、Java評論家が使用したいプラットフォームの最強の側面ではありません(場合によっては当然)。 たとえば、 java.io.File.copy()を実装する要求は10年間ハングしています。 Commons IOは部分的に役立ちます:
- Fileutils
- copyDirectory(ファイル、ファイル)-ディレクトリのコピー
- copyFile(ファイル、ファイル)-ファイルのコピー
- listFiles(File、String []、boolean)-拡張子および再帰によるファイルのリスト。 java.io.Fileが学んだことはない。
- readFileToString(ファイル、文字列)
- writeStringToFile(ファイル、文字列)
- copyDirectory(ファイル、ファイル)-ディレクトリのコピー
- IOUtils
- closeQuietly(Reader / Writer / InputStream / OutputStream)-DbUtilsのように、スパゲッティのようなコードを回避するのに役立ちます。
- copy(InputStream、OutputStream)はクラシックです。
- closeQuietly(Reader / Writer / InputStream / OutputStream)-DbUtilsのように、スパゲッティのようなコードを回避するのに役立ちます。
文字列、リフレクション、シリアル化、オブジェクト、およびシステムを操作するためのユーティリティ。 おそらく、Apache Commonsで最も使用されているライブラリです。
- StringUtils-文字列を操作するための膨大な数のメソッド。
- is(Not)Blank / Empty(String)
if (s!=null && s.trim().length()>0)
を忘れる時がif (s!=null && s.trim().length()>0)
。
- is(Not)Blank / Empty(String)
- StringEscapeUtils
- (un)escapeSql(String)-PreparedStatementを使用しない人向け:)
- (un)escapeHtml(String)-それなしのWeb開発者はどこにいますか。
- (un)escapeSql(String)-PreparedStatementを使用しない人向け:)
- ToStringBuilder
- reflectionToString(オブジェクト)は、反射ベースのtoString()の実装です。 つまり、オブジェクトのフィールドを追加または削除すると、メソッドの結果が自動的に変更されます。 怠け者のために、私のように:)
- reflectionToString(オブジェクト)は、反射ベースのtoString()の実装です。 つまり、オブジェクトのフィールドを追加または削除すると、メソッドの結果が自動的に変更されます。 怠け者のために、私のように:)
- EqualsBuilderとHashCodeBuilder
- reflectionEquals / HashCode(オブジェクト)。 もちろん、メソッドは一緒に使用する必要があります。 2つのオブジェクトが等しいとは、 すべてのフィールドの値が等しいことを意味する場合に適しています。 Eclipseユーザーは、「hashCode()およびequals()を生成」というメニューオプションが長い間存在してきたことに反対します。 ただし、 これら 2つのビルダーは、フィールドの追加など、オブジェクトの進化中にオブジェクトの構造的な変更を自動的に考慮します。
- reflectionEquals / HashCode(オブジェクト)。 もちろん、メソッドは一緒に使用する必要があります。 2つのオブジェクトが等しいとは、 すべてのフィールドの値が等しいことを意味する場合に適しています。 Eclipseユーザーは、「hashCode()およびequals()を生成」というメニューオプションが長い間存在してきたことに反対します。 ただし、 これら 2つのビルダーは、フィールドの追加など、オブジェクトの進化中にオブジェクトの構造的な変更を自動的に考慮します。
- ExceptionUtils
- getFullStrackTrace(スロー可能)。 13年の間、java.lang.Throwableは、文字列の形式でトレースを生成する単純だが必要なメソッドとしてまだ登場していません...
- getFullStrackTrace(スロー可能)。 13年の間、java.lang.Throwableは、文字列の形式でトレースを生成する単純だが必要なメソッドとしてまだ登場していません...