[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 10/30 04:07 / Filesize : 205 KB / Number-of Response : 753
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Java】Apache Jakarta Commons



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って出ますが、あんな計算をさくっとやってくれるツールないですかね






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef