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を兼ねた便利なクラスも用意されており、その数は豊富である。
698 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 10:12:59 ] 10個の要素があるリストで、5、6、7、8、9,10,1,2,3,4って順にまわしてくれる iteratorないですか? 5でnextがfalseになるような感じです。
699 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 10:20:57 ] 開始する要素が固定とかだったら、自分で書いた方が早いんじゃない?
700 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 12:01:25 ] >>698 なんで10の次が1になるのか。 まず最初に5から読み込むがいきなりfalseになって 結局回らない。 何がいいたいのかわからない。
701 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 12:30:02 ] こういうコンパイラ以上のことが出来ないやつは一生底辺プログラマだな >698 それ位はさすがに自分でコード書こう 応急処置としてsubListでばらして繋ぎなおすとか。
702 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:08:40 ] >>698 の日本語が変なので 具体的に彼が何がしたいのかよくわからない
703 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:17:41 ] >>702 要は、開始位置が指定できて、リストが持っている配列の最後にきたら先頭に戻るようにして 終了のタイミングは開始位置の1つ前、って事でしょ。わかれよ
704 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:32:35 ] test
705 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:33:49 ] で、そんなよく使うわけでもないモノはcommonsには無いし、書くのも簡単だから書けば。 で終了。
706 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:37:51 ] >>703 Bufferでやりたくなってくる
707 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:43:15 ] >>706 List から Buffer への変換やるのか。面倒くさそう。
708 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:50:06 ] Iteratorを継承して自作すればいい
709 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:51:58 ] >>703 それでも>>698 の言っている意味と合致していないような気がするが。 最後に5でnextがfalseになるようにしたい? 俺は、まずソートしてからIteratorを回したいと>>698 が 主張しているように見えたぞ
710 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 23:59:03 ] LoopingIterator
711 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 00:04:09 ] 「作ればいいじゃん」でFAですね。
712 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 00:06:58 ] >>711 >>710
713 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 10:48:27 ] >>710 それじゃ永久ループじゃん。
714 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 18:57:49 ] ToStringBuilder.reflectionToStringのネスト機能が欲しい・・・
715 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 20:58:45 ] そういうときこそ、自作すればいいじゃないか。 そしてパッチをCommonsに提供するんだ。 そうすれば知名度が上がるかもしれないぞ。 つか、EclipseのCommons4Eプラグインを使えば ある程度自動化できるんじゃないのか?
716 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 22:24:56 ] Iteratorなんて滅茶苦茶シンプルなインタフェースなんだから探すより作った方が早いよ。
717 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 15:52:40 ] JRCS・・・なくなった。 diffも使えなくなった・・・
718 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 09:47:19 ] commonsにchainってあったんだ。 struts1.3でも使っているみたいだね。 ovserveもあるといいかも。
719 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 09:55:28 ] Chain of Responsibilityパターンが実現できる あのAPIか
720 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 11:27:16 ] unixでいうところのbashのreadlineのライブラリに似たものはcommonsにないですかね。
721 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 11:29:29 ] >>719 そうそう。 springって単純にnewの内容を設定ファイル化できるけど、 それじゃ処理の流れを変更できないので、 spring+chainの軽量ライブラリがあればbestなんだけど。
722 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 11:53:14 ] >>720 commonsじゃないけど、sourceforgeにJava Readlineっつうのがあったよ。 ttp://java-readline.sourceforge.net/
723 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 11:32:29 ] ConfigurationのXPathExpressionEngineって、XMLConfiguration をxpath検索できるのかな? jxpathの絡んでる?
724 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 09:46:42 ] ArrayIntList結構便利かも。
725 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 12:27:59 ] >>723 それ使ったことがないからわからないけど Configurationは不安定でファイルをオートリロードするストラテジも ろくに機能しないし、ファイル書き込みも意味不明でどこの ディレクトリパスなのかさっぱりわからない不具合がおきるし(save()メソッドの 挙動が変。絶対パスなのか相対パスなのかイマイチ)。
726 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 14:38:51 ] >>725 最近バージョン上がったよ。 細かくは試していないけど。
727 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 22:59:05 ] JSP2.0のEL部分だけ取り出したようなライブラリってCommonsにないんかな。 変数入れたMapと文字列渡すと実行できるようなやつ。 静的なメソッド呼び出しを関数に割り当てできるとベスト。 設定に数式を入力できないとヤダとか言い出すヤツが多くて困る…
728 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 23:18:02 ] Jakarta Commons EL
729 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:16:00 ] >>728 それはJSP用のELやん。 Expression#evaluateがjavax.servlet.jsp.el.VariableResolver使うから避けたい。 このライブラリで言うと、 引数はorg.apache.commons.el.VariableResolverになってるやつが欲しい。 んで、JspVariableResolverとMapVariableResolverって感じでAdapterがあると単独で使いやすい。 ついでに言うと、Expressionにはevaluate(Map)な簡易メソッドがあると最高。
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しないようにすればいいのに・・・