Java

Java SE Development Kit (JDK) 6 Update 11

Java SE Downloads - Sun Developers HomeもうUpdate11か。 このリリースでは、アプレットの機能と Java Web Start テクノロジーを組み合わせた新しい Java Plug-in や、 Microsoft プラットフォーム用の新しい Direct3D パイプライン、および最新のドキュメ…

こいつは便利

UMLツールであるJUDEだが、何も説明を見ないで使っていたので※コンテキストメニューから選択できる「詳細クラス図を自動作成する」コマンドが何をするのを今日まで知らなかった。たまたま間違って選択してしてみてこの機能を理解した。 例えばlogパッケージ…

GanymedeとLucida Sans Typewriter

Ganymede(Eclipse 3.4)が使えるようになってかなり経つが、実は未だにEuropa(同3.3)のままだったりする。 というのも、Ganymedeではお気に入りの欧文フォント"Lucida Sans Typewriter"を使った場合に、日本語の描画時のサイズがEuropaよりも小さくなっており…

開発者が決めるアーキテクチャ

ASP.NET MVCを触ってみたのだがとても良い。 URIのマッピングやモデル、ビューの選択に代表される、CoC(Convention Over Configuration)を採用していることや※、ことさらMVCに拘るのも、モデル層(永続化層)のフレームワークを特定のアーキテクチャにロックイ…

ネストするアノテーション

.NETの場合、特定のターゲット(型、プロパティ、メソッド等)に対して同一のアノテーション(カスタム属性)を複数記述することが可能だが、Javaはそれは許可されない(コンパイルレベルでチェックされる)。 Javaも今後のバージョンではアノテーションの記述の制…

プリミティブの配列

java.lang.reflect.Arrayなんてクラスがあることからも、無理矢理用意した感が今となっては凄く邪魔だ。ジェネリクスで振る舞いが変わった共変(CoVariant)の違いも気持ち悪いし。それというのも、C#で書いたコンバータ・ライブラリィのJavaポーティングでテ…

HSQLDBのポート

プロセス間通信で9000番を既に使用しているので java -cp hsqldb.jar org.hsqldb.Server -database HOGEDB -port 9999 ってポートを変えたらTomcatのコンテキストXML側も修正しないと、そりゃJDBCも使えないわな。

getMethods()と順序

リフレクションでは定義された順に取り出せないのは解った。 しかし、アノテーションがどの(型|メソッド|フィールド)に記述されているか、という情報がアノテーション自身から得られない以上、善し悪しは別にしても、メソッドやフィールドが定義順に取り出せ…

ドキュメント書き中

今日は無難に10頁。ふと思ったんだが、"Microsoft Word"って使って何年になるんだろう。DOS時代からの一太郎は使ったことが無いし、WordPerfectも名前だけしか知らない。まともに使ったPCのワードプロセッサはWordから、ということになる。ということはWord5…

getMethods()と順序

Class#getMethods()で戻るMethodオブジェクトの配列は、ソースコードに定義されている順で格納されているのだとばかり思っていたのだが、違うようだ。Class#getMethods() 返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはあ…

ドキュメント書き中

午前中は全て会議で消えて、午後、アノテーションの実装が足りなかったことが解って、進捗1頁。 まあ、こんな日もあるさ。

ドキュメント書き中

今日はちょっと苦戦して10頁。(バリデーションの説明は面倒だ)毎回思うのだが(前回も書いたように思う)、開発ドキュメントを書くってことは仕様の最終確認になる訳で、一種の受け入れテストをしているのと同じということだ。無論テストををしていない訳では…

Hey Jude

使用しているクラスの解説を書くのにUML図が欲しくなったので、書けるツールをいろいろ試していた。※条件は以下の4つ1. 独立したアプリケーションであること(コードとの同期をとるのが目的ではないし、開発環境が重くなるのは避けたい) 2. ソースコードを読…

ドキュメント書き中

今日は20頁進んだ。サンプルコードの貼り付けは言語が違うので当たり前だが、XMLなどの設定ファイルもわざわざ貼り付け直している。DTDは同じだしそんな必要は無いんだけど、色目が違うと結構雰囲気違うんで合わせないと格好悪いんだよな。

ドキュメント書き中

全体のボリュームの約1割を完了したか。(トータルで250頁程度の予定)1.内容と構成の検討 2.ソースコードやファイルの内容を切り貼り 3.スクリーンショットや図の切り貼り 4.サンプルとして足りないコードを書いてテスト 5.推敲これらの項番の作業…

RowSetもう嫌だ

使いづらいは、RI(reference implementation)は怪しいはでもうたくさんだ。OracleやBEAが独自の実装を持つ理由が解るというものだ。本当はJPA実装を使いたいが、リモート(HTTP経由)で永続化ができる実装が見あたらない。Oracle TopLinkだとJAXBを介するとXML…

BeansBindingとDocumentFiler

List JTable JTable#Column JTextField JTextFieldにはDocumentFilterを介して入力文字と長さのチェックを行っている。 この状態でJTableの特定のセルをクリックすると、以下のスタックで再帰呼び出しになってしまう。(関係の無いトレースは端折っている) Be…

BeansBindingとDocumentFiler

またまたBeansBindingネタ。以下のような関係でBeansBindingを設定したアプリケーションがある。 List JTable JTable#Column JTextField JTextFieldにはDocumentFilterを介して入力文字と長さのチェックを行っている。この状態でJTableの特定のセルをクリッ…

混乱

C#(.net)の場合、型がAbstractかどうかを判断するのかは、Type型のプロパティを調べることで簡単にできるので、JavaのClassクラスでも全く同様にできると思ったのだが、それらしいメソッドが全く見あたらない。結局の所Modifierクラスを使えばできるのだが、…

JTableBindingとTableModelListener

JTableを使ったアプリケーションを作る場合、JTable(TableModel)上のデータが変更されたことを検知する必要があるケースが多いが、その場合TableModelListenerを使える。 table.getModel().addTableModelListener(new TableModelListener(){ @Override publi…

隠された例外(その3)

2008/08/14 xx:xx:xx oracle.jdbc.driver.OracleStatement [doExecuteWithTimeout] SQL: INSERT INTO ADDBOOK ORDER BY FULLNAME (FULLNAME, ADDRESS, EMAIL, MARRIED, GENDER, UPDDATE) VALUES (?, ?, ?, ?, ?, ?) 2008/08/14 xx:xx:xx oracle.jdbc.driver.…

隠された例外(その2)

Java 6u7のCachedRowSet実装でacceptChangesを呼ぶと、以下のように例外が出るがよく判らない。 Caused by: javax.sql.rowset.spi.SyncProviderException: 3同期中に競合が発生します。 at com.sun.rowset.internal.CachedRowSetWriter.writeData(CachedRowS…

隠された例外

Java 6u7のCachedRowSet実装でacceptChangesを呼ぶと、以下のように例外が出るがよく判らない。 Caused by: javax.sql.rowset.spi.SyncProviderException: 3同期中に競合が発生します。 at com.sun.rowset.internal.CachedRowSetWriter.writeData(CachedRowS…

Virtual Store

仮想店舗ではない。Virtual StoreはWindows Vistaにおけるストレージ仮想化の実装だ。Windows Vista のファイルおよびレジストリの仮想化に関する一般的な問題Windows2000やXPのアプリケーションではProgram FilesフォルダやWindowsフォルダ配下に設定を保存…

冗長?、情調?

artonさんの昨日のエントリより。 public class FooBar : IEnumerable { public IEnumerator GetEnumerator() { yield return bar++; } IEnumerable.IEnumerator GetEnumerator() { return GetEnumerator(); } } C#の場合、IEnumeratorとIEnumeratorは違う型…

下手に似ているだけに

JavaとC#をいったり来たりしてコーディングしているのだが、完全に違うのではなく下手に似ているだけに、ちょっと考え方を変えなくてはならない部分に出くわすと、途端に頭が混乱する。(じじいなのかもなぁ)・Genericsがイレイジャ(Java)と非イレイジャ(C#) …

Javaのアノテーションに纏わる小ネタ

Javaのアノテーションの定義では各属性のdefault値を設定することができるが、このdefault値の設定を省略した属性は、アノテーションが記述される際に値を設定しないままにするとビルド時にはエラーになる。(チェックされる) 例 @Documented @Inherited @Tar…

Map.Entry

辞書(ハッシュ、マップ)のキーとエントリの両方の値を使って並べ替えを行いたいケース、.net C#の場合ならKeyValuePair構造体を使うのだが、Javaでこれに相当するものは無いのだろうなと思い込んでいた。ちゃんとあるし。 Map map = this.getAttributeMap();…

ガニメデ

http://www.eclipse.org/ganymede/スプラッシュのダークな配色は今まで一番好きかも。 私がEuropaで使っていたプラグインは全て互換性があるようなので、とっとと移行することにした。 スクリーンショットを見て貰えば解ると思うが、勿論Babelによるローカラ…

JConsoleによるJava web startアプリへの接続

WebブラウザからURL経由で起動したJava Web StartアプリケーションにJConsoleから接続できない現象だが、まだ原因が解らない。Webブラウザを使おうが使うまいが、javaws.exeがランチャになってアプリケーションが起動するシーケンスは変わらない訳で、違うの…