2008-06-01から1ヶ月間の記事一覧

デフォルトコンストラクタ自動生成の謎

半年位前に経験したバグなのですが、突然あるクラスのデフォルトコンストラクタが見つかりませんという内容のExceptionが発生しました。 原因は他プロジェクトのjarに梱包された型をデフォルトコンストラクタでインスタンス化していたのですが、このjar側の…

SAXパーサ作成時のバグ

以前作成したJavaのSAX方式(ストリーム読込)のXMLパーサのトラブルメモ。 長いXMLを読むだけであればメモリパフォーマンスを考慮してSAXパーサを使用しますが、ちょっと意識していないとバグ埋め込んでしまうかも知れません。 サンプルコード public class P…

引数を省略するメソッドの考察

ruby、C++、VB、C#には引数のデフォルト値を設定して(Optional等)、 引数を省略できる言語仕様になっています。何故Javaには導入されていないんだろうか? ふと疑問が湧きました。 実際には以下のようにオーバーロードで対応していると思います。 method(int…

浮動小数の誤差

2進計算による浮動小数の誤差について意識なく平気で演算したり比較するケースをよく見かけます。 大抵はあまり問題は発生しないのですが、特殊なケースで予想と反する結果となります。色々と試してみました。 Ruby(irb)の場合 irb(main):001:0> 1-0.9 == 1/…

parseIntの罠

最近、久しぶりにソース記述ミスによるバグではまったのでメモ。 文字列型をint型に変換するJavaでもお馴染みメソッドparseInt。 javascriptにてn月の翌月を算出するプログラムの中でparseIntを使用して発生した問題。 var i = (parseInt("200809".substr(4)…

3日坊主

メンドイからとblogは始めていなかったのですが、ここ最近発信したい衝動が猛烈に強くなりました。 3日坊主でもいいので、自分が経験したことをとりあえず吐き出します。