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を兼ねた便利なクラスも用意されており、その数は豊富である。
412 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 13:54:54 ] じゃあなに使うの?
413 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 15:40:10 ] >>403 っていうかJakarta Commons Langって翻訳が全然すすんでないな。 最後に編集したのがこれかい $Id: ArrayUtils.java,v 1.1.1.1 2004/02/13 10:02:05 hioki Exp $ hiokiって誰だ? 姓名がいおき?
414 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 15:46:18 ] >>405 そんなのは初めて聞いたぞ。 っていうかそもそも*なんて普通つかうか? >>410 新規にXMLファイル作るなら 簡単だろ。 独自のオブジェクト作ってしまえば かなり楽だろ。 独自のクラスで作られたオブジェクトを newしてそれをListにぶちこんでから Velocityのputにぶちこんで あとはVelocityファイル側で #foreachを使ってlistにぶち込まれた オブジェクトを取り出すだけ。 やり方はマニュアルとかに書いてある。 ググって見ても簡単でいいサンプルもあった。 >>411 普通に仕事でVelocity使ったんだが。Velocityファイルにコメントなんて 一切書かないが。XMLを自動生成するならコメントは<!-- -->だな XMLファイルを自動生成するためにVelocity 使ってコード書いて納品したよ。そのシステム、今でも動いている。
415 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 21:32:07 ] velocityよりfreemarkerの方がいい。
416 名前:デフォルトの名無しさん mailto:sage [2005/12/04(日) 09:28:41 ] >>413 文句言うなら自分でやれよ。
417 名前:デフォルトの名無しさん mailto:sage [2005/12/05(月) 18:34:53 ] FreeMaker はタイプ量が増えるのでやだ。 < と > で囲うことに魅力が感じられない。
418 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:13:16 ] あっははは これだからJakarta信者は。
419 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:23:36 ] Velocityは人気が高いからな ELでいいじゃん
420 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:29:28 ] Velocityで質問。 配列のリストをVelocityContextにlistOfArrayとして入れたとするでしょ。 #foreach($array in $listOfArray)〜#endで中身の配列は取れるけど $arrayの各要素が#foreach($object in $array)〜#endで、 それどころか$array[0]でも取れないのはどうすればいいんかね。
421 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:34:05 ] velocityCountとかいう内部変数があるよ。 デフォルトは1からだが、0からに変更することも可能。
422 名前:420 mailto:sage [2005/12/11(日) 02:50:00 ] >>421 質問内容が伝わってないようだから改めて書く。 下のような例の場合 1 と 4 が出力されてほしいがそうならない。foreachで受けた 変数が配列の場合、どういう表記をすればその配列の中身を取り出せるのかね。 Java側 List listOfArray = new ArrayList(); listOfArray.add(new int[] { 1, 2, 3, }); listOfArray.add(new int[] { 4, 5, 6, }); VelocityContext context = new VelocityContext(); context.put("listOfArray", listOfArray); Velocity側 #foreach ($array in $listOfArray) ## $listOfArrayの各要素は取り出せる。 $array[0] ## $array の各要素は取り出せない。 #foreach ($object in $array) ## foreach でもダメ。 $object #end #end
423 名前:420 mailto:sage [2005/12/11(日) 02:52:36 ] > 下のような例の場合 1 と 4 が出力されてほしいがそうならない。 下のような例の場合 $array[0] に対応した箇所で 1 と 4 が出力されてほしいがそうならない。
424 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:59:26 ] プリミティブ配列だからでは? Integerで出来ない?
425 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 03:02:29 ] Integerでも無理
426 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 03:04:54 ] #foreach( $ref in arg ) statement #end 使い方: * $ref - 最初の変数リファレンスは、リストの項目です。 * arg - リストのリファレンス(つまりオブジェクト配列/コレクション/マップ)、 配列リスト、範囲演算子のいずれかです。 * statement - 上記で arg と示されたリスト内にある、 有効なアイテムの分だけ出力する内容です。 この出力は有効なVTLなら何でもよく、ループの繰り返し毎に処理されます。 ドキュメントを見ると出来るはずなのにな。 #{array[0]}は試した?
427 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 03:07:21 ] #{array[0]} もダメ。 でも配列のリストでなく、リストのリストならうまくいくことは確認している。
428 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 06:33:17 ] 画面ばっかり作っていて #foreach( $arrays in $beans.samplearray ) #foreach( $array in $arrays ) #foreach( $sample in $array ) $sample #end #end #end みたいな事やってたから出来ると思うが・・・リストのリストだったのかな $array[n] はできないよ。 #set( $sample = [] ) みたいにカラのArrayListオブジェクトを作ることは出来るけど・・・ 配列の中身取りたかったら、#foreachでまわすか、リストにして $array.get(n) のかたちで取らないといけないんじゃなかったか。 #foreach でまわせないのは・・・ new int[] { 1, 2, 3, } ってやってるけど、3つなら3つって指定してやらないといけないとか しかし long の数値が if で比較できないとか色々不便だな。 #if( "$longvalue".equals( "0" ) ) みたいなことやってる。悲しすぎる。 ああ、$math 使えばよかったか・・・どっちにしろ長く分かりにくくなるんだよなぁ。
429 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 15:11:00 ] >>426 を見るとオブジェクト配列は可能ってあるけど、何が可能なんだろうな
430 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 15:20:04 ] あれ?俺は普通に出来たが・・・ArrayListにint[]
431 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 14:20:24 ] >>403 こんなところで笑ってないで、フィードバックしる。
432 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 14:33:17 ] >>420-430 ListToolを使ってみたらどう? Velocity Tools 1.2 (最近リリースされた) 以降でないとだめだけど。 ttp://jakarta.apache.org/velocity/tools/javadoc/org/apache/velocity/tools/generic/ListTool.html
433 名前:デフォルトの名無しさん [2005/12/13(火) 16:03:56 ] Configurationsって仕様見ると超便利なのに バグが多すぎだなorz プロパティファイルが更新されると同時に更新されたことを 自動的に読みとってくるリロードストラテジークラスを 使ってみたのにプロパティファイルを更新しても全然リロードされなかった。 クラスパスが通っているところにファイルを置いてもうまく いかないみたいだ。これって最悪。Hibernateの設定ファイルを 管理しようと思っていたのに。 しかも読み込んだ設定ファイルを保存するsave()メソッドもちゃんと機能しない。 なにやらJavaプログラム実行ディレクトリを基点とした 絶対パスを指定しないとうまくいかないようだ。save()メソッドを実行する前に setBasePath()またはコンストラクタで絶対パスを指定するか、save()メソッドの 引数に絶対パスを指定するかしないと変更が反映されないようだ。 これもクラスパス上に置いただけではまったく糠に釘出しのようだ。 それでも正確に反映されないときがある。それにはク意図的にコンストラクタで newしないといけないようだ。 ということで現状のConfigurationには期待に反して不満が多すぎ。 XMLファイルの読み書きは楽だと思ったけど。
434 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 20:41:50 ] 現在、Jakartaのサイトにつながらないが、 そんなことを掲示板に書くな、ヴォケが。
435 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 18:21:13 ] >420 primitiveの配列でもサポートされるはずだけど。 org.apache.velocity.util.introspection.UberspectImpl#getIterator(Object, Info)あたり参照。 正直、Velocityはソース追いながら & hackしながらじゃないと使いにくい。
436 名前:デフォルトの名無しさん mailto:sage [2005/12/19(月) 18:59:19 ] perl5utilでtrは未サポートらしいですね。 自力でかな 全角→半角 置換します。 if ("ア".match(str)) { str.replaceAll("", "ア"); } else if ・・・ tr/アイウエオ/アイウエオ/ができたら1行なのに!
437 名前:デフォルトの名無しさん mailto:sage [2005/12/19(月) 19:37:50 ] 誤爆?
438 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 21:05:05 ] きわどい内容だね ここに書いてもなんら違和感ないキャスティングだ
439 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 22:57:08 ] OROだな。テラナツカシス
440 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 00:08:03 ] JMeterみたいな知る人ぞ知るみたいなツールもあれば ECSみたいに厨房のオナニーライブラリと見分けが付かないものもあったり Jakartaも質がばらばらだな
441 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 02:51:14 ] >>440 でもオープンなライブラリがこれだけあるのがありがたいじゃん。 例え玉石混淆でもさ。 最近.NET案件入ったらCommonsみたいのがなくて、そのありがたさを身にしみて感じてるよ。
442 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 02:52:04 ] .netは金だせばなんでもある世界
443 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 07:16:13 ] JakartaっていうかApacheのいいところは、既存プロジェクトからいい機能が 独立プロジェクトになるところ
444 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 17:19:23 ] JMeterって知る人ぞ知るかぁ?Jakartaのトップからもう何年もリンクがあるのに? あんまり使われてないのは 1. JMeter重すぎ、サーバの負荷テストの前にクライアントの負荷テストになる 2. HTTPのテストならproxyの設定の必要がないのと軽さで Microsoft Web Application Stress Tool(通称ゲイツ砲)に軍配 3. RMIについてはちょっと他に代わりを知らないのでJMeter使う場合もあるが そもそもリッチクライアントだってRMI使うことが流行じゃない 4. データベースの負荷テストなんてそもそもJMeterからやらんでもいい 5. テスト仕様書もエヴィデンスもJavadoc化できるので 負荷テストはユニットテストの延長でjunit/junit-eeなりcactusなりで作る 6. お金があるのでWinRunnerみたいなテスト自動化ツールとか Cloverみたいな分析ツールを買った ってところが理由だと思うけどな。 ECSを厨房ライブラリと言い切るのもなんだかねぇ。 perlのCGI..pmとかXML::Writer.pmのjava版だと思えばあっても構わんだろ。 使いたい奴は使えばいい。
445 名前:デフォルトの名無しさん [2006/01/02(月) 14:32:56 ] 正月じゃカルタやるべさ
446 名前:デフォルトの名無しさん mailto:sage [2006/01/02(月) 15:06:10 ] >>440 Commonsの場合はSandboxであるかないか、とか AかBか、という違いで質がわかるようになっている。 それ以外にも古いものや開発が停滞しているものあるはい開発が すっかり止まっているものは質が悪かったりする(とは限らないが)、などなど。
447 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:59:02 ] JXPathめちゃめちゃ使えますね。 XPathでワイルドカード、正規表現検索ってできるのでしょうか?
448 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 11:50:05 ] Commonsに電卓のようなクラスはあるでしょうか。 "10 + (9 -1) / 2"の文字列を計算するようなものです。
449 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:43:16 ] >>448 velocityでやるべし。 StringWriter writer = new StringWriter(); Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * 4 * 6 )$value"); System.out.println("result: " + writer);
450 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:49:43 ] >>449 なるほどね。 いただき!やってみます
451 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:53:39 ] >>450 こんなんもできる。 StringWriter writer = new StringWriter(); Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * 4 - 6 )$value"); System.out.println("result: " + writer); writer = new StringWriter(); Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * ( 4 - 6) )$value"); System.out.println("result: " + writer);
452 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 20:34:35 ] Mapのキーのリストを渡して、Mapのvalueを配列(リストでもいいんだけど)で帰すメソッドってありますか? 見つからなかったので自分で作りました。 あってもいいんだけど・・・ public static Object[] toValueList(Map map, List keyList) { Iterator iterater = keyList.iterator(); List result = new ArrayList(); while (iterater.hasNext()) { result.add(map.get(iterater.next())); } return result.toArray(); }
453 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 21:56:02 ] >>452 キーのリストを指定しなくて良いなら map.values().toArray() で取れるけど。
454 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 09:47:11 ] >>453 ありがとうございます。
455 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 16:36:04 ] FileUtilsでcopyDirectory(File srcDir, File destDir)がありますが、 UNIXにあたる mv はないでしょうか。
456 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 05:32:36 ] >>455 Commonsと関係ないけど import java.io.File; public class MoveFile { public static void main(String[] args) { File orgFile = new File("a.gif"); orgFile.renameTo(new File("tmp" + File.separator + orgFile.getName())); } } こんなやり方で a.gifファイルが tmpディレクトリに移動できるみたいだけど これじゃだめ?
457 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 10:24:43 ] >>456 ありがとうございます。 できました。 ちなみにパーティションを介した場合でも移動になるのでしょうか? 自分のマシンがCドライブのみなので確認できません。
458 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 12:27:35 ] >>457 共有してドライブに割り当てれば?
459 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 12:28:52 ] >457 それか、これ。 arena.nikkeibp.co.jp/tec/winxp/20040825/109291/
460 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 19:37:27 ] >>458 できました。 ありがとうございます。
461 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 20:25:19 ] CompositeMap使ったことある人
462 名前:デフォルトの名無しさん [2006/01/15(日) 23:09:53 ] Commons VFSを使えば Commons Netにはなかったsftp接続ができるとわかったんだけど このVFS、うまく動かない。 EclipseのMaven Repo Searchプラグインを使ってvfsで検索して 以下のタグをクリップボードからpom.xmlに貼り付けてMaven2で mvn ecipse:eclipseとして JARファイルをEclipseプロジェクトのライブラリに追加したのだが・・・ <dependency> <groupId>commons-vfs</groupId> <artifactId>commons-vfs</artifactId> <version>20050307052300</version> <scope>compile</scope> <type>jar</type> </dependency> ナイトリービルドだからいたしかない、というしかないのだろうか? 以下のコードをためしてみたものの homepage2.nifty.com/igat/igapyon/diary/2005/ig050702.html Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.commons.vfs.impl.StandardFileSystemManager.<init>(StandardFileSystemManager.java:45) at name.sugawara.hiroshi.html.taggenerator.uploader.ImageUploader.main(ImageUploader.java:31) どういうことだ? EclipseにはCommons LoggingのJarがライブラリにクラスパスとして通っているというのに。
463 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 00:04:50 ] とりあえずsugawara hiroshiさんだということは分かった。
464 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 01:35:30 ] ∩___∩ | ノ ヽ /⌒) ● ● | / ////( _●_)// ミ .( ヽ |∪| 、\ \ ヽノ /´> ) | / (_/
465 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 02:07:22 ] ワラタ(・∀・)
466 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 02:21:57 ] >>463 ばれちゃったか(笑 しばらくレスするのやめることにするかもしれないけど 実名晒しても恐れずに前に突き進んでみるさ。 VFSはまだまだバグがあるのようなので かわりにJschまたはJ2SSHを試して見ることにしたよ。 レスサンクスな。
467 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 02:35:03 ] パッケージ名にname.sugawara.hiroshiという.nameドメインを使っていただけ ただそれだけのようで何も珍しくも
468 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 02:48:56 ] Maven Repo SearchでもsshをキーワードにしてJ2SSHをインストールできることがわかった。
469 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 12:50:48 ] >>462 どうやら、実行時にCommons Logging のjarをクラスパスに通すだけでいいっぽい。 これはどうやら、なぜかJ2SSHでも同じように必要なようですな。
470 名前:462 mailto:sage [2006/01/17(火) 02:02:23 ] 結局sftpを使うにはJ2SSHを使うことにした。 Commons VFSを使うよりこっちのほうが安定している。 確かにVFS, J2SSHどちらも実行時にCommons Loggingを必要としている。 内部ではjsch.jarを使っているようだ。 Maven Repo SearchでJ2SSHも引っかかることがわかった。
471 名前:デフォルトの名無しさん [2006/01/25(水) 04:51:28 ] Commons Configurations使ったらlog4j,becl,beanutils.commons-loggingのダウンロードも強いられた。 もうわけわかめ。Eclipse + Maven2がなかったら困惑してたに違いヌー
472 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 11:46:12 ] ネストされているBeanのプロパティーの値も出力してくれる ReflectionToStringBuilderみたいなものはないでしょうか。 DB登録失敗時にデータを運用で復元したいので、 テキスト形式で情報を出してほしいといわれてしまいました。 対処法がわからず途方にくれています。
473 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 12:11:34 ] org.apache.commons.transaction.file.FileResourceManager使ったことある人 ファイルをベースにして、DBのようなトランザクションができそう
474 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 12:16:13 ] >>472 とりあえず、XMLEncoderでシリアライズしてみるとか。
475 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 13:28:04 ] >>474 そうですね。 今はとりあえずBeanWriterでXML形式で全部出しています。 ただプロパティー形式にしろといわれ、ちょっと困っています。 Commonsをいろいろみましたが、XML→プロパティの変換はなかったので・・・
476 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 17:00:12 ] ちょっとしたことなんだけど、ファイル削除メソッドってstaticであってもよくないですか。 new File("xx").delete();はめんどくさいです。
477 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 17:22:38 ] 仮にあったとしても FileUtils.delete("xx"); じゃ大して変わらんね。 static import すりゃタイプ数も変わるかもしれんが、 delete は比較的衝突しやすそうな名前だしなぁ。
478 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 10:32:22 ] >>473 自己レス。 新たにファイルを作成・書込み・変更の作業はロールバックできるけど、 すでにあるファイルを削除したときのロールバックはできないみたい。 他にやり方があるかもしれないですが・・・
479 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 10:41:11 ] org.apache.commons.collections.iterators いろいろみましたが、 カウンタを取得できるiteratorはないですね。 ループはiteratorでいつも通りしたいのですが、 ループ中にカウンタがほしい、ということはないんですかね・・・。 カウンタ取るために、リストを配列に戻して、list.get(1)とかって、なんか悲しいです。 皆さんはどうしてます。
480 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 12:20:57 ] >>479 ローカル変数でカウンタ宣言してループ内で使えばいいんじゃ? イテレータがカウンタ持つ必要はないと思うけど
481 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 12:26:48 ] >>479 インデックス使いたいなら、わざわざIterator使う必要ないと思うけど。 インデックス使わずに、走査できるのがIteratorなのに。 なんで、List→配列化するかも不明??
482 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 17:32:46 ] 俺も行番号生成とかでたまにやるけど、少なくとも配列に戻す必要は無いな。 ローカル変数で十分。
483 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 17:43:28 ] List#listIterator() じゃダメなの?
484 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 17:29:34 ] >>479 LinkedHashMap使ってキーに数字をいれるのはどうよ? って話じゃないか List#subList()などを組み合わせてループしながら List#index.Of() , List#lastIndexOf()でindexを検索するのはどうよ?
485 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 18:02:07 ] BeanMap bmap = new BeanMap(this); System.out.println(IteratorUtils.toList(bmap.entryIterator())); でフィールドのリストが出力されますが、 thisのクラスのみのフィールドをしゅとくすることはできるでしょうか。
486 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 19:04:22 ] >>479 素直に int counter = 0; for( String s : stringList) { counter++; //なんか処理 } じゃ駄目なのか?
487 名前:デフォルトの名無しさん [2006/02/02(木) 00:19:04 ] CodeZine:Jakarta Commonsを使ってJDKクラスを拡張する:パート1 codezine.jp/a/article.aspx?aid=283 CodeZine:Jakarta Commonsを使ってJDKクラスを拡張する:パート2 codezine.jp/a/article.aspx?aid=284
488 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 16:14:27 ] 日付の大小比較をしたいのですが、DateUtils.isSameDayだと 大小比較ができません。Commonsで他に便利なものはありますでしょうか?
489 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 16:20:31 ] >>488 java.util.Date#compareTo(Date)
490 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 17:50:24 ] >>489 失敬です。 当然でした・・・・
491 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 18:43:06 ] PropertiesでLinkedHashMapに対応するPropertiesみたいなものってないでしょうか? PropertiesのpropertyNamesでキーのリストを取れますが、 Propertiesの先頭から順に取得したいです。
492 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 19:26:59 ] ファイルの内容をiteratorでまわすクラスはあるでしょうか。
493 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 19:37:41 ] org.apache.commons.io.FileUtils.readLines(new File("filename"), "encoding")
494 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 20:24:22 ] >>493 ありがとうございます。 これは一気にファイルの情報をStringにつめていますが(たぶん) 小さいファイルなのでかまわず使用させていただきます。
495 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 20:44:09 ] 一気に読みたくないなら commons なんか使わないで普通に BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("filename"), "encoding")); String line; while(null != (line = br.readLine())){ // line 使った処理 }
496 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 14:45:55 ] cvsファイルの、"xx xx"やxx\'xxなど文字を、下記の通り返すようなユーティリティはありますか。 "xx xx" → xx xx xx\'xx → xx'xx
497 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 14:58:46 ] >>496 それありそうでないよね。
498 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 19:08:45 ] >>497 たしかに。StringTokenizerはつかえねーし。
499 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 23:59:52 ] >>496 いまいち意味がつかめないんだけど、ダブルクォートと円サインを空文字で 置換したあとに、(CSVなので)カンマでsplitしたらいいの?
500 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 05:59:06 ] >>499 ダブルクォートの中にカンマがあったら?
501 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 13:45:01 ] HashMapのみで構成されたCollectionにCollections.sortかけたら、 なぜかClassCastExceptionが発生。なぜ?
502 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 13:51:39 ] >>501 Comparator 渡さなかったんじゃないの? HashMap は Comparable 実装して無いから ((Comparable)e1).compareTo(e2) みたいにやってる部分で ClassCastException 食らうはず。
503 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 13:55:06 ] >>501 すいません。自己解決。Comparable実装してませんでした。
504 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 18:16:05 ] シリアライズ可能でないオブジェクトは、どうあがいてもシリアライズできないでしょうか。 SerializationUtilsは、見た感じそのようなものではなかったのですが・・
505 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 21:49:00 ] CollectionUtilsのforAllDo()で、コレクションの再起処理はできないのでしょうか
506 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 22:14:17 ] class RecursiveClosuer implements Closure{ private Closure delegate; public RecursiveClosure(Closure closure){ delegate = closure; } public void execute(Object input){ if(!input instanceof Collection) delegate.execute(input); else CollectionUtils.forAllDo((Collection)input, this); } } みたいのを作って CollectionUtils.forAllDo(collection, new RecursiveClosure(delegate)) とかすれば数行で対応できるから作らんかったんじゃなかろーか。
507 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 16:25:06 ] >>506 すばらしい。 ありがとうございます。
508 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 05:09:46 ] Closure closure = new Closure(input) { if (input instanceof Collection) { CollectionUtils.forAllDo((Collection) input, this); } else { // したい処理 } }; CollectionUtils.forAllDo(collection, closure); 再帰処理するように Closure を書けばいいだけじゃん。 506 みたいな RecursiveClosure なんか作る必要もない。
509 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 05:11:03 ] なんか変になったが new Closure() { public void execute(Object input) {・・・ な
510 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 11:00:42 ] PropertyUtils#setPropertyって、BeanUtils#setPropertyと違って オブジェクトのConvertが使用されないのですね・・
511 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 13:11:57 ] ドキュメントに with no type conversions ってしっかり書いてあるし。
512 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 15:01:18 ] yahooの検索結果で、10件表示の全件が110件以上の場合は 検索画面の下に 2・・・・11って出ますが、あんな計算をさくっとやってくれるツールないですかね