«前の日(10-24) 最新 次の日(10-26)» 追記

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2002-10-25 古い日記からの変換データ

_ Java

無名クラスの悪用を避けられないかどうか考えたが,・静的に構文チェックが一番楽そう.しかし,これを AspectJ の pointcut として書こうとすると実はできなさそう,ということも分かった.まぁ,構文チェックだけで済むならそれでよいか,という気もするが.

newInstance のほうは気持ち悪いので,以下のようにして禁止してみるのも手だろう.

pointcut use_newInstance(): call(Object Class.newInstance());declare error(): use_newInstance(): "don't use newInstance()!";

_ Java

無名クラスはクラスとして使えるのか?という疑問がふと湧いたので,こんなコードを書いてみた.無名クラスのオブジェクト生成→クラス取得→クラスからインスタンス生成,というだけだけれど.

public static Comparator getComparator() { Class c = new Comparator () { : }.getClass(); try { return (Comparator)c.newInstance(); } catch (InstantiationException e) { return null; } catch (IllegalAccessException e2) { return null; }}なんと結果はOK. Main$_1 とかいう無名クラスのクラスオブジェクトがちゃんと取れていたし,インスタンスの生成もできた.

ちなみに,無名クラスは,コンストラクタ以外なら何でもオーバーライドできそうな気配.たとえば,throw new RuntimeException("hoge") { public String getMessage() { return "foo"; }}とやってみたところ(getMessage をオーバーライドした),ちゃんと動作してしまった.これも無名クラスのオブジェクトになる.

勝手にローカルにクラスをオーバーライドできることがわかったので,やっぱり無名クラスの利用は禁止したほうがよいのかもしれない.セキュリティ上は final が重要だなぁ.アスペクトでこういう奴の利用を引っ掛けられたらいいんだけど…….

_ 紅茶

レピシエ,ウヴァ・ハイランズを飲んでみる.感想は紅茶のページのところにちょこっと書いてみたけど,やっぱりアッサムの一位は揺らがず.アッサム・ラマナガーやディコムのように,フルリーフなアッサム紅茶が最高.#この辺は完全に好みの話なので情報量は少ない

_ 読書

アン・マキャフリィ,パーンの竜騎士3「白い竜」を読破.話の展開が速くて,大きな事件になると思ったものがあっさりと解決されてしまってちょっと意表を突かれる形になった.

これで,パーンの竜騎士,最初の三部作は読み終わったので,私の個人的お気に入りである竪琴師メノリらが主役の4・5巻を買うついでに,視野を広げるべくエリザベス・ヘイドン「ラプソディ」の解説のところに影響を受けたファンタジー作家のひとりとして挙げられていたパトリシア・マキリップの「妖女サイベルの呼び声」を仕入れてきた.

先に借りてきた本だけは片付けないとまずそうなので,そちらから優先的に片付けることにする.読書キューの長さがまったく減ってないし,だいぶ前に買った J2EE アプリケーション設計ガイドとかを読める時間が取れるのはいつになるのだろう :-)


2003-10-25 古い日記からの変換データ

_ Calendar

hyCalendar 0.4.3 リリース.とりあえず仮(?)のアイコンを作ってもらえたのでVector で公開を試みることにする.# 3人くらいの人に言われた

_ Delphi

今日のはまり.

Canvas.Font への代入は参照のコピーではなくAssign だったことに気づかずに

f = Canvas.Font;Canvas.Font := x;

// do something

Canvas.Font := f;

とかやっていた.f は Canvas.Font の参照なので,Canvas.Font := f; は意味を持たない.とほほー.


2004-10-25 古い日記からの変換データ

_ [Java][work]バイトコードのスタック操作情報

データ依存関係の解析のうちエイリアス解析を除いた部分をほぼ実装完了.

BCEL では StackProducer と StackConsumer というクラスが,各バイトコードごとのオペランドスタックの増加・消費値を教えてくれるので,実はそんなに実装は難しくなかったことが途中で判明.

ただし,例外が投げられたときだけ,例外の情報がスタックに詰まれるので,例外ハンドラや finally 節の実装部分だけはスタックの初期サイズが 0 でないとしてスタックの操作を見てやらないといけないらしい.


2005-10-25

_ [AspectJ][ツール] AJDTの多言語対応

AJDTのインタフェースを各言語に翻訳してくれる人を募集しているのに今更気づいた.日本語版は ajdt-dev ML の過去ログによると, kentaro matsumae さんという方が既に宣言を出している様子.

日本語版があると,きっと授業とかでの説明がすごく楽になって嬉しいので,手伝ってもいいだろうなと思ったのだけど,連絡先とかが見つからない(aosd-jpのメンバーリストにもそれっぽい人が見つからなかった)ので如何ともしがたい.翻訳版がリリースされるまでにこのページをご本人に見てもらえるかな,どうかな?