Javaの最近のブログ記事

レビューで鍛えるJavaコーディング力 その1(日付バリデーション) - 谷本 心 in せろ部屋
Javaでの日付チェック考察。非常に為になる。parse前と後を比較というのはいいアイデアだよなぁ。自分は解答1のSimpleDateFormatはスレッドセーフじゃないぐらいしか見抜けんかったのでまだまだだね。vb.NetでもHHにはまったはずなのに忘れてーら。

卜部昌平のあまりreblogしないtumblr - 俺の .screenrc が火を吹くぜ
昔、設定ファイルの構文がよく分からなくて挫折した記憶があるが、これを機に一回見直そうかなぁと思った。(その前に自宅サーバのストレージをそろそろ買いに行かねばならんが。)

帰宅したら復刊ドットコムから本が届いていた。

book_20091210_0.jpg

買ったのはコレ(Java並行処理プログラミング その「基盤」と「最新API」を究める ブライアン・ゲーツ、ダグ・リーほか/岩谷 宏 訳 販売ページ)
book_20091210_1.jpg
良書って噂を聞いて欲しかったんだけどちょうど絶版に...。
でも今amazonみたら在庫があった。売れてるみたいだから増刷したのかな...。

Javaの修飾子

| コメント(0) | トラックバック(0)

バイトで慣れ親しんでるJavaだけど, まだまだ知らない部分があるんだなぁと思った.
javaの修飾子一覧→http://www.tohoho-web.com/java/modifier.htm

この中で完全に知らなかったのはvolatileとstrictfpか.
volatileはc++でマルチスレッド環境でsingletonを使ったりとか,シグナルハンドラの処理絡みで使う場合があるっていうのを本で知ったけどjavaにもあったのか...

strictfpは存在自体が意外だ.浮動小数点演算になるとVMじゃプラットフォームによる違いを吸収できないのか...

あと恥ずかしながらassert 構文の存在を始めて知りました.どーせ,そーいうのは1.6ぐらいから登場だろ?と思ったら1.4.0から既に使える状態だったのね....(参考:JavaでHello World アサーション編)


まだまだ勉強不足だな
#ああ,そーいえばeffective javaまだ読破してねー. そのうち読まないと.
--
修論?まだ(ry

のHSSFを再び扱うことになってしまった。(前回の記事)

画像を含むexcelをテンプレートとして食わすとシートのコピー時に落ちるらしい。
実際にやってみたが見事に落ちた( 'Д`)

調べてみたら既知の問題らしい。
http://d.hatena.ne.jp/hyperash/20050219#p1 ■[Java]Excelファイルの生成

ソースを見たらRecordでcloneが呼ばれたら例外を投げるようだ。なのでRecordを継承してるクラスがcloneを実装しなければいけないようだが...。ソース見たら実装されてねぇ!?

公式のバグレポート見たらコレに対処するパッチを投げてる人が居たッ。http://issues.apache.org/bugzilla/show_bug.cgi?id=29615

ただ
いがぴょんの日記v2のこの記事


2005.02.18時点の最新版を Jakarta の CVSサイトから取得して確認しましたが、やはり動作しなかったです。加えて cloneメソッドを単純に追加しただけでは動作しないことについても確認とりました。

ともあるし、このパッチだけでうまく動くのかどうか...あとビルドし直すのめんどくさいしうーん...と悩む。

とりあえずPOIのversionを2.5から3.0-rc4に上げる。

再びソースを見たが
公式のChange logを見るとさっきのパッチを投げた人がHere's the fix suggested in comment 5, as a patch against 3.0 alpha2.と言っているにもかかわらず、rc4内にパッチのコードは見当たらなかった。ダメな対処法だったのだろうか。

再び公式のバグレポートへ。
やっぱり困ってる人が居たッ!
http://issues.apache.org/bugzilla/show_bug.cgi?id=28744

どうやら現状のPOI HSSFで扱えるタイプと扱えないタイプのexcelファイルが存在するようです。
poiのテストは通るパターンのexcelファイルを添付してくれた人が居たので(comment #7-#14)この添付されたファイルをベースに作り直したら動いたので、まぁイイかぁといった感じに。でもコメントを見てみると更にパッチが

結論を言うと現状のPOI HSSFは画像ファイルを含んでも一応動くが、まだまだ地雷っぽい。


Additional Comment #6より


Sometimes the images work, sometimes they don't. It's very strange.

404 Blog Not Found:Code Snippets - reduce(l|r)を実装汁!より、面白そうだし、コーディングの練習にもなるのでやってみた。

まずはループで。


public class Reduce {

public static String reducel(String...a){
//最初の2つだけ特別扱い
String tmp = cat(a[0], a[1]);
for(int i=2; i < a.length; i++){
tmp = cat(tmp, a[i]);
}
return tmp;
}

public static String reducer(String...a){
String tmp = cat(a[a.length-2], a[a.length-1]);
for(int i=a.length-3; i>=0; i--){
tmp = cat(a[i], tmp);
}
return tmp;
}

private static String cat(String a, String b){
return "(" + a + "#" + b +")";
}

public static void main(String args[]){
System.out.println(reducel("1","2","3","4","5"));
System.out.println(reducer("1","2","3","4","5"));
}

}

長さ判定してないのでマズイコードだ。
次はちゃんと考えて再帰で。


public class Reduce2 {

public static String reducel(int lastIndex, String[] array){
if(array.length <= 1){
// 1つだけ-> reducel無理
return "can't reducel";
}else if(lastIndex == 1){
// 最初の2つだけになったら具体的な文字列を返す
return cat(array[0], array[1]);
}
return cat(reducel(lastIndex-1, array), array[lastIndex]);
}

public static String reducer(int index, String[] array){
if(array.length <= 1){
// 1つだけ-> reducer無理
return "can't reducer";
}else if(index == array.length-2){
// 最後の2つだけになったら具体的な文字列を返す
return cat(array[array.length-2], array[array.length-1]);
}
return cat(array[index], reducer(index+1, array));
}

private static String cat(String a, String b){
return "(" + a + "#" + b +")";
}

public static void main(String args[]){
String[] a = {"1","2","3","4","5"};
System.out.println(reducel(a.length-1, a));
System.out.println(reducer(0, a));
}

}

結果はどちらも
((((1#2)#3)#4)#5)
(1#(2#(3#(4#5))))


再帰だと制限の10分を超えてしまった。がふん。
reducel()を実装の時、最初→方向で考えてしまったけど、再帰だとでかい塊から徐々に小さい塊へってなるから逆方向(←)だよね。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちJavaカテゴリに属しているものが含まれています。

前のカテゴリはCです。

次のカテゴリはJavascriptです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて
Powered by Movable Type 4.261