1 名前:デフォルトの名無しさん [04/09/12 10:56:03] クラスもかなり増えてきた Apache Jakarta Commons について語るスレッド Apache Jakarta Commons jakarta.apache.org/commons/ 中でも便利なものが Commons Lang jakarta.apache.org/commons/lang/ Commons Collections jakarta.apache.org/commons/collections/ Commons FileUpload jakarta.apache.org/commons/fileupload/ とくにLangには equals(), hashcode(), compareTo(), toString() メソッドを簡単にオーバライドできるメソッドが用意されており重宝する。 そのほか、NestableExceptionはC#のような言語に頼らなくても 投げられ続けた例外を上書きせずに保持する事ができるので便利。 Collectionsは java.utilのコレクションクラスに不満を持つ者にとっては 朗報だ。ListとHashを兼ねた便利なクラスも用意されており、その数は豊富である。
730 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:25:08 ] Jakarta Commons JEXLはどうなん? > Java Expression Language (JEXL) is an expression language engine > which can be embedded in applications and frameworks. ってあるけど。
731 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:44:55 ] >>730 おぉ、パッと見はよさげ。サンクス。 式って言うか、ちょっとスクリプト寄り? 意図しないstaticメソッド呼び出しができないようになってれば 変数入れたMapとの変換で何とかなるかな。 今筋トレ中なので、明日にでも試してみるよ。
732 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 13:27:00 ] OROの話題ですが、置換で$1が使えますが、(??{ code }) は使えるでしょうか。 codeは、Perlにおいて、埋め込まれたPerlコードを実行してその結果を正規表現を表すものとして使用します。 らしいですが、javaのメソッドなど呼べたら便利かなと。 つまり、メソッドを登録しておき、そのメソッドにマッチした部分の引数をOROがわで渡すことができればOKなのですが。
733 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 13:43:55 ] PropertyUtils#setProperty()でセットできる対象はsetterがあるプロパティだけだけど、 setterがないものにもセットできるものはないかな? ToStringBuilderあたりはその辺強引にやっているらしいけど
734 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 14:24:22 ] >>732 多分Oro単体では無理。 GroovyやBeanShellみたいなスクリプティングエンジンと組み合わせれば多分可能。
735 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 00:07:47 ] IOUtils1.2にあるProxyReaderとかのProxy〜系ストリームクラスってJDK標準のFilter〜系クラスと何が違うんですか? それぞれFilter系クラスを拡張してあるようなのですが、いまいち何のために使うべきなのかわかりません。
736 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 13:29:22 ] A Proxy stream which acts as expected, that is it passes the method calls on to the proxied stream and doesn't change which methods are being called. It is an alternative base class to FilterReader to increase reusability, because FilterReader changes the methods being called, such as read(char[]) to read(char[], int, int). FilterReader がメソッドのシグネチャを変えやがるから Reader のシグネチャと同じになるようにしたやつを作った。 らしい。
737 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 09:48:59 ] >>722 nativeのライブラリ使ってるだけだった。 ナンだよそれって感じ。 環境依存するので使用はボツ
738 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 10:28:31 ] >>737 コンソール使ってる時点で環境依存はやむを得ない。
739 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 10:54:20 ] log4jで、設定ファイル中のログレベルを変更した場合、アプリ再起動しないで即時更新させることはできますか? 運用中にレベルを変更することは結構あると思うので・・・
740 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 23:19:40 ] ログファイルの変更を監視すればいいんじゃない?
741 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 08:21:05 ] >>739 つ ttp://www.beasys.co.jp/dev2dev/resourcelibrary/utilitiestools/adminmgmt.html#Log4jAdministrationJSP
742 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 11:15:47 ] >>741 そんな面倒なことしなくても、タイムスタンプを見てから DOMConfigurator.configureを実行すれば、ロガーの追加もレベル変更も即時更新。
743 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 14:21:01 ] >>742 ほんまや
744 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 16:44:04 ] DOMConfigurator.configureAndWatchでよくね?
745 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:43:17 ] >>742 ,744 739じゃないけど、kwsk教えてください
746 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 15:05:25 ] つAPI ttp://www.ingrid.org/jajakarta/log4j/jakarta-log4j-1.1.3/docs-ja/api/org/apache/log4j/xml/DOMConfigurator.html#configureAndWatch(java.lang.String,%20long)
747 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 21:08:33 ] XMLConfiguration、HierarchicalConfiguration超使える。 これで書き込みができれば最高
748 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 10:47:57 ] IOUtilsのFileUtils.listFilesでファイル検索が簡単にできるけど、 /home/*/bin/*.sh とかのワイルドカード検索はできないんだね。 ワイルドカードのフィルターはあるけど・・・
749 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 13:05:53 ] >>747 XMLのほうは書き込みやリロードのバグがあったが 直ってるか?
750 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 14:19:04 ] >>749 ぽいよ。
751 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 19:58:22 ] CollectionのBagで数が多い順に取り出す方法はありますか?
752 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 10:08:56 ] AbstractMapBagに /** * Mutable integer class for storing the data. */ protected static class MutableInteger { /** The value of this mutable. */ protected int value; /** * Constructor. * @param value the initial value */ MutableInteger(int value) { this.value = value; } public boolean equals(Object obj) { if (obj instanceof MutableInteger == false) { return false; } return ((MutableInteger) obj).value == value; } public int hashCode() { return value; } } ってあるけど、何でInteger使わないんだろ。メモリの削減になるわけでもないような。 ツーか頻繁に変えるなら、plus()minux()のメソッド作ってデータの変更のたびにnewしないようにすればいいのに・・・