«前の日記(2002-10-22) 最新 次の日記(2002-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 アプリケーション設計ガイドとかを読める時間が取れるのはいつになるのだろう :-)

お名前:
E-mail:
右の画像に書かれている文字列を入力してください:
コメント: