Jakarta Commonsを使ってJDKクラスを拡張する:パート1
Commons Validator/Collections/Chain/Functors/Langの利用
ダウンロード サンプルファイル (33.0 KB)
-
- Page 2
-
- Collections
- org.apache.commons.collections
- org.apache.commons.collections.bag
- org.apache.commons.collections.bidimap
- org.apache.commons.collections.buffer
- org.apache.commons.collections.collection
- org.apache.commons.collections.comparators
- org.apache.commons.collections.functors
- org.apache.commons.collections.iterators
- org.apache.commons.collections.keyvalue
- org.apache.commons.collections.list
- org.apache.commons.collections.map
- org.apache.commons.collections.set
Lang
このLang APIは「java.lang」パッケージに対する拡張です。私はCommons Langが将来JDKの一部になることを望んでいます。このパッケージにはJavaプロジェクトで使用できるユーティリティメソッドが数多く含まれています(JakartaのWebサイトに包括的なユーザーガイドがあり、javadocには大部分のクラスについて簡単な用法が記載されています)。本稿では特に興味深いクラスだけを紹介します。サンプルのソースファイルは「in.co.narayanan.commons.lang」パッケージに収められています。
StringUtils、WordUtils、StringEscapeUtils、RandomStringUtilsの各クラスには有用な文字列操作メソッドが備わっています。以下のリストでは、これらのメソッドの中でよく使うものを取り上げ、その用法を示します。
次のメソッドは、たとえばJTableセルなどでGUI内の表示領域が制限されている場合に、メッセージの一部だけを表示します。
String message = "Please check the logs for an error.";
message = StringUtils.abbreviate(message, 25);
次のメソッドは、Javaで開発されるデスクトップアプリケーションで非常に役立ちます(たとえば、電子メールを作成して送信する機能が必要なJava Swingアプリケーションなど)。
String message = "jakarta commons";
message = StringUtils.capitalize(message);
次に示すのはWordUtilsクラスからのもので、文字列を大文字にする2種類のメソッドです。
String message = "jakarta commons"; message = WordUtils.capitalize(message); String message = "jakarta COMMONS"; message = WordUtils.capitalizeFully(message);
詳しい用法についてはjavadocを参照してください。
次のメソッドは前後にスペースを入れてメッセージを位置合わせするのに便利です。
String message = "java";
message = StringUtils.center(message, 10);
これまでは文字列処理のためにトークン化のコードを書くことがよくありましたが、Langを使えばその必要はありません。splitメソッドはトークン化の処理を行い、String配列を返してくれます。joinメソッドを使用すると、String配列から新しい文字列を作成できます。
String message = "hello how are you"; String messageTokens[] = StringUtils.split(message, ' '); String newMessage = StringUtils.join(messageTokens, '$');
文字列内でのパスワード表示も、overlayメソッドで簡単に実現できます。replaceメソッドは非常に優秀で、単語を検索して置換する機能も備えています。そのため、文字位置を気にする必要はありません。
String message = "This is a demo for replace and overlay feature"; message = StringUtils.replace(message, "demo", "illustration"); message = "Your password is: somepassword"; message = StringUtils.overlay(message, "*****", 18, message.length());
StringEscapeUtilsクラスには、HTML、Java文字列、JavaScript文字列、SQL、およびXMLをエスケープ/エスケープ解除するためのメソッドがあります。
String html = "<h1>This will be displayed in the <i>HTML</i> page. Hence the <b>tags</b> will be escaped.<h1>"; String escapedHtml = StringEscapeUtils.escapeHtml(html);
次のメソッドではランダムなパスワードを生成できます。
String randomPassword = RandomStringUtils.randomAlphanumeric(8);
System.out.println("Random Password:" + randomPassword);
以降では、各パッケージについて簡単に触れておきます。
org.apache.commons.lang
ArrayUtils、BooleanUtils、CharRange、CharSet、CharUtils、SystemUtils、Validateが注目すべきクラスです。詳細はjavadocを参照してください。
org.apache.commons.lang.builder
クラスCompareToBuilder、EqualsBuilder、HashCodeBuilder、ToStringBuilderは、それぞれメソッドcompareTo、equals、hashCode、toStringを実装するのに役立ちます。これらのクラスは、ほぼすべてのJavaプロジェクトで必要になります。
org.apache.commons.lang.enums
Java 1.5では列挙型がサポートされています。したがって、このパッケージが役に立つのはJDK 1.5より前のプロジェクトです。このパッケージのjavadocには使用例が掲載されています。
org.apache.commons.lang.exception
NestableExceptionクラスは例外の原因をリンクするためのサポートを提供します。すべての例外についてスタックトレースができると、エラーの根本原因をすばやく突き止めるのに役立ちます。これは特にJDK 1.4より前のプロジェクトで有用です。JDK 1.4以降には、ネストした例外のサポートが備わっています。
org.apache.commons.lang.math
IntRange、Fraction、NumberUtils、RandomUtilsが注目すべきクラスです。詳細はjavadocを参照してください。
org.apache.commons.lang.mutable
java.langパッケージ内の基本型のラッパーは不変ですが、このパッケージに含まれているラッパークラスは可変です。詳細はjavadocを参照してください。
org.apache.commons.lang.time
DateUtils、DataFormatUtils、FastDateFormat、StopWatchなどのクラスが有用です。詳細はjavadocを参照してください。
まとめ
Jakarta Commonsについて紹介するシリーズ第1回では、次のことを取り上げました。
- Commonsのさまざまなコンポーネントが提供する豊富な機能
- ユーティリティクラスの特定のコンポーネントやメソッドの具体的な用途
- さまざまなAPIで使われているデザインパターン
- さまざまなAPIのパッケージとクラスの概要
これからJavaアプリケーションをデザインしたり開発したりするときには、有用なクラスを選んで適切に使用できるのではないでしょうか。このシリーズの第2回と第3回では、さらに興味深いコンポーネントについて解説します。最後までお付き合いいただけば、あなたもJakarta Commonsコンポーネントの大部分のクラスをJDKの一部にすべきだと確信するでしょう。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Narayanan A.R.(Narayanan A.R.)
テスト駆動開発、アジャイル方法論、Javaテクノロジ、およびデザインパターンの熱烈な擁護者。Javaテクノロジを使ったソフトウェアのデザインおよび開発に携わって数年になる。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
