2007-01-01から1年間の記事一覧

AWTEvent.RESERVED_ID_MAX

java.awt クラス AWTEvent自作のGUIイベントオブジェクトクラスを作ろうとAWTEventクラスをベースにする場合、表題の定数よりも大きいIDを振るのが決まりだが、これって各自で振る訳で他の人が書いた同様のクラスを使う場合、IDが重複することがあるだろうと…

またインタフェース

インタフェースっていいよなぁ、と数日前に書いたけれど、これがJavaやC#を冗長にしている原因の一つでもあるのだなというのも納得している。 スクリプトの世界で暫く遊んだ後で静的な世界に戻ってくると、クラスを書くのがたまらなくだるく感じるからだ。か…

インタフェース

っていいよなぁやっぱり。ポーティングをしていると特にそう思う。 インタフェースは操作のみが定義、提供されている。Javaだろうが、C#だろうが操作は操作だし。 実装が無くてもビルドは通るしテストもできるから、中身が空のままどんどん作業を進められる…

Windows Vista Service Pack 1 RC

Windows Updateを実行してみた。ファイルI/O周りは確かに速くなったようだ。大量のファイルコピーやゴミ箱を空にする際の時間は確かに短縮されたが、先日実施したフォルダブラウズ時にZipファイルをいちいち展開しないことに比べるとインパクトは弱い。 それ…

Windows Vista Service Pack 1 RC Windows Update Installation Experience

知らぬ間にMSDNサブスクライバ ダウンロードにアップされていた。早速自宅で人柱。 それにしても今回の配布方法は変わっている。MSDNからダウンロードされるのはSP1の内容とインストール方法を書いたドキュメントとレジストリを書き換えるコマンドだけだ。 …

正規表現

告白するが、少しの間使っていないとすぐにメタキャラクタや文字クラスの意味を忘れるので、近くにリファレンス本が欠かせない。 正規表現の達人 第2版 正確に言うと持っているのは1版のほう。忘れないように深く覚えるには、と一念奮起。 詳説 正規表現 第2…

ヒール

暫くぶりにJavaメインの仕事に戻ってきたんだが、周りを見聞きするにどうして何時の間にJavaはこんなに悪役になってしまったんだろう。 Microsoftの開発言語/ツールも歴史的に悪役にされることがあるけれど(暗黒面とか散々言われたりしてきた)、それでも、ど…

内部クラス

Javaの内部クラスは種類が豊富なのが災いして解り難い。 ネストトップレベルクラス メンバクラス ローカルクラス 無名クラス それぞれちゃんと説明することは難しい。 私の場合はメンバクラスとローカルクラスは滅多に使うことは無いので忘れたりする。

GroupLayoutの難解さ

J2SE6で導入されたSwingの新しいレイアウトマネジャであるGroupLayoutクラスだが、そもそもIDEから自動生成されることを前提にしているのか、単に私の読解能力が低いのか、いろいろな所で散見される解説を読んでもさっぱり解った気がしない。クラス GroupLay…

Eclipse3.3 + VE

Eclipseは標準パッケージではGUI Builderを持たないがVE(Visual Editor)と呼ばれるプラグインがあり、これが事実上標準となっている。...がしかしEclipseはWebアプリケーションがメインストリームになってから世に出てきたIDEであることもあってかVEの開発は…

データ共有の仕組みとDB

以前に、C#のフレームワークをJavaに移行する際に代替が困難な仕組みについて言及した。 代替困難 この中でも特に大変なのが クライアントデータ(オブジェクト)の共有 だと思っていたのだが、大変なのは.NET RemotingをJavaプラットホームで再現しようとする…

ブレースと一貫性

Type1(主にC#) if (a == b) { a.SetHoge(b); } else { b.SetHoge(a); } Type2(主にJava) if (a == b) { a.setHoge(b); } else { b.setHoge(a); } C#からJavaへの移植。Type1からType2のブレーススタイルに変更するのが地味に面倒だ。 JavaでType1のスタイル…

JavaのAutoBoxingって..

JavaはJ2SE5(Tiger)でC#に似たAutoBoxingが導入された。C#のintとInt32等の関係とは違い、Javaの場合はプリミティブ型をどこかの段階でラッパークラスに変換しなくてはならない。これはそもそも書き手にBoxingを意識させないためなんだろうけれど、結果とし…

JavaのAutoBoxingって..(追記)

bleis-tiftさんからコメントで情報を頂いたが、JavaのAutoBoxingで不思議な?振る舞いになるのは、プリミティブをラッパーに変換する際にある範囲の値はキャッシュから返しているからだそうな。オートボクシング・アンボクシングの注意 - きしだのはてな なる…

師走は不思議と

一段寒くなる。11/30と12/1に気候上そんなに違いは無いはずなのだが、それでも12月に入ると寒く感じるのだ。何故だろう。

インナークラスをデバッグするとステップフィルタが効かない

標題の通りだが、Eclipse(Version 3.3.1.1)を使ってインナークラスをデバッグすると、本来はステップフィルタでフィルタリングされるはずが、Object.classまで遡ってしまうようだ。 JSDKのバージョンは"1.6.0_03"だが、今のところ原因は判らず。

J2SE6と式評価エンジン

拙作のフレームワークではDIコンテナの評価式のエンジンを挿げ替えることができるようになっているが、Javaでもこの仕様を踏襲する予定だ。 過去記事一覧検索 "DI 式評価".NETでは、Jscript.NET、IronPython、PoweShellと試してきたが、JavaではJ2SE6が提供…

J2SE6と式評価エンジン(その2)

例の善し悪しは別にして、DIの式評価エンジンにMozilla Rhino:Java Script for Javaを使うとこんなことも出来てしまう。(設定ファイルは開発中のものなので適当) <components> <component name="mainFrame" class="javax.swing.JFrame" instance="singleton" autoBinding="none"> <property name="Visible">true</property> <method name="setDefaultCloseOperation"> <arg><js>JFram…</js></arg></method></component></components>

Zipファイルのフォルダ展開を無効にする

WindowsXPの時はインストールしたzipfldr.dllを解除するだけで良かったのだが、Vistaの場合はその方法ではできないらしく一時はあきらめていたのだが、本日、基点となっているフォルダに巨大なZipがあることでFileVisorの起動に1分程待たされたのに我慢でき…

Woodstox

Woodstox - High-performance XML processorコメントで教えて頂いたWoodstoxは、バリデーション機能を既に有しているStAXパーサの実装。 J2SE7では参照実装も確実にバリデーション機能を持つだろうが、そこまで待てない場合はこちらを使わせて頂くことになる…

無いなら作ろう(その3)

J2SE6のXMLInputFactoryの参照実装はcom.sun.xml.internal.stream.XMLInputFactoryImplだが、この実装はXML文書のバリデーションには対応していないようだ。実際、XMLInputFactoryで設定できる属性であるjavax.xml.stream.isValidatingをtrueにすると、例外…

無いなら作ろう

これも先日のエントリだが、J2SE6のStAXプルパーサのカーソルAPIは.NETで言うところのサブツリーを抽出する操作ができないと書いた。 できないだけで終わるのは癪だし、実際に移植する際にはサブツリーを処理するロジックを書く必要がある訳で、であればサブ…

遠のいたVista導入

先日のエントリでは、Windows VistaでClickOnceアプリケーションをシェル起動する際、IE7のウインドウを非表示にできないと書いた。これに関してはpotekuriさんからコメントで「保護モードを解除すればできるのでは」というアドバイスを頂いた。試してみると…

無いなら作ろう(その2)

急遽書いたXMLStreamSubReaderだが、いきなりのだめ出し。 <a> <b> <c> <b> </b> </c> </b> </a>ノード名で制御しているので、上記の構造でノード:bから下のサブツリーを生成すると正しく構造を走査できない。ノード:c直下のノード:bでブレークしてしまう。このままではネストした構造に…

Streaming API for XML Online Document

StAXに関していろいろ調べているのだが、SAXやDOMに比べてドキュメントは極端に少ない。(新興APIなんだし当たり前か)Streaming API for XML - the Java Web Services Developer Kit 1.6Streaming API for XML (StAX) の使い方 - BEA WebLogic XML プログラマ…

Log4netのConversionPatternでミリ秒まで記録する

書式"fff"(フラクタル秒か?)を使う。ConversionPatternはこんな感じ %d{yyyy/MM/dd HH:mm:ss.fff} 表示例 少なくともLog4net-1.2.10ではLogjで使えていたはずの書式"SSS"は使えないようだ。

シェル起動のウインドウ隠蔽はVistaで使えない

以前にClickOnceアプリケーションをシェル起動する際にIEのウインドウを表示しないようにする方法を紹介したが //IEからシェル起動 Process process = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(ターゲットパス(URL)); startInfo.F…

やはり朝はいいなぁ

昨日半日かけても原因が解らなかった不具合が今朝の一時間足らずで修正完了だ。

一日以上の長

JavaはJ2SE6から(正確にはJava Web Services Developer Packから)XML用のAPIとしてStAXと呼ばれる新しいパーサ(プルパーサ)を提供したが、これはC#で既に実装されている同様のパーサと非常に良く似たものである。以下はプルパーサを使ってhoge.xmlを読み込む…

Swingアプリ向けDIコンテナアプローチ

Javaなので今回こそSeasar2、とも思ったのだが、C#ではせっかく自分で書いたので(といってもかなりのインタフェースはSeasar2と同じなのだが)Javaでも自分で書くことにした。設計自体はC#で書いたものと同じなのだが、改めて要件を列挙することにする。 設定…