テストコードを交え紹介します。
配列の内容を分かりやすい文字形式にするArrayUtils.toString
assertEquals("toString", "{a,b,c}", ArrayUtils.toString(new String[]{"a","b","c"}));
普通にtoStringした場合は、[Ljava.lang.String;@99353f と
値が全然分からない形で出力されてしまいます。
同じように自作クラスの内容を文字形式にするのに
便利なのが以下の ToStringBuilder.reflectionToString です
class TestClass {
int id;
String name;
}
TestClass test = new TestClass();
test.id = 1;
test.name = "aaa";
assertEquals("toStringBuilder", "LangTest$TestClass@1198891[id=1,name=aaa]", ToStringBuilder.reflectionToString(test));
int id;
String name;
}
TestClass test = new TestClass();
test.id = 1;
test.name = "aaa";
assertEquals("toStringBuilder", "LangTest$TestClass@1198891[id=1,name=aaa]", ToStringBuilder.reflectionToString(test));
こちも普通にtoStringしただけだと LangTest$TestClass@15663a2
といった値が分からない形式になってしまいます。
エスケープ関連の機能も多く存在します。
HTMLのエスケープに使用する StringEscapeUtils.escapeHtml4
assertEquals("toStringBuilder", "X&Y", StringEscapeUtils.escapeHtml4("X&Y"));
他にもJava, JavaScript, XMLのエスケープを行うものもあります。
日付関連の処理に便利なのは DateUtils です。
DateUtils.truncate は年や日付、時間など指定した単位以下を
切捨てます。
Calendar cal = new GregorianCalendar(2013, 11, 10, 23, 59, 59);
Calendar cal2 = new GregorianCalendar(2013, 11, 10, 0, 0, 0);
Calendar truncatedDate = DateUtils.truncate(cal, Calendar.DATE );
assertTrue("日付切捨て", cal2.equals(truncatedDate));
Calendar cal2 = new GregorianCalendar(2013, 11, 10, 0, 0, 0);
Calendar truncatedDate = DateUtils.truncate(cal, Calendar.DATE );
assertTrue("日付切捨て", cal2.equals(truncatedDate));
四捨五入する round というメソッドもあります。
同日か判断する isSameDay というのも便利です。
Calendar cal = new GregorianCalendar(2013, 11, 10, 23, 59, 59);
Calendar cal2 = new GregorianCalendar(2013, 11, 10, 0, 0, 0);
assertTrue("同日", DateUtils.isSameDay(cal, cal2));
Calendar cal2 = new GregorianCalendar(2013, 11, 10, 0, 0, 0);
assertTrue("同日", DateUtils.isSameDay(cal, cal2));
今回でCommonsも終わりにしてフレームワーク関連の話を
しばらく書いていきます。