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


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

Eclipse統合M25【Java/C/PHP/Ruby/Python/Perl】



99 名前:デフォルトの名無しさん [2008/06/06(金) 19:48:09 ]
StringBuilder sb = new StringBuilder(2000);
sb.append("<html>" +
"<title>かけざんの苦苦</title>" +
"<body>");
sb.append("<table>");
for (int i=1; i<=9; i++) {
 sb.append("<tr>");
 for (int j=1; j<=9; j++) {
  sb.append("<td>" + i*j + "</td>"); // ←ココ
 }
 sb.append("</tr>");
}
sb.append("</table>");

まぁ、こんなコードに出合ったワケですよ。
 sb.append("<td>" + i*j + "</td>"); に注目してください。
これは、実はコンパイル時にこう展開されるんです。
 sb.append( new StringBuilder("<td>").append(i*j).append("</td>").toString() );
なんか変です。StringBuilder の append の中に StringBuilder が生成されて
さらに toString() つまり String オブジェクトに変換されてから、元の sb に append されるワケです。
sb を StringBuilder で宣言したのは、無駄なオブジェクトの生成を抑えて効率よく処理するためな筈なのに
結局は見えないところで String オブジェクトの生成・破棄がなされてたワケです。

無駄ですね。こんなおバカなコード書くのって恥ずかしいですよね。
じゃぁ実際どう書けばいいかというと、
 sb.append("<td>").appned(i*j).appned("</td>");
なワケですが、これがメンドクサイ。いちいち ).appned( で連結するのがヒジョーにメンドクサイんです。
見た目も横に長〜いコードになりがちで、パッと見てわかりにくい。

なんか便利な方法は無いですか?みなさんは、せっせと ).appned( を書きまくってるんですか?






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

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

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