MIDP API リファレンス2種類の使い分け

はじめに

昨晩 MIDP 2.0 と CLDC 1.1 の API リファレンスを公開しましたが、それに伴って MIDP 1.0 と CLDC 1.0 による API リファレンスは不要になったわけではない、ということについて今回は書いてみたいと思います。

MIDP 1.0 と 2.0

Java は伝統的に、上位互換(後方互換)を保ってのバージョンアップが行われます。これは MIDP においても例外ではなく MIDP 1.0 向けのソフトは概ね MIDP 2.0 でも動作します(仕様以外の要因で動作しないことは確かにありますが)。

となると、MIDP 2.0 の API リファレンスだけを見て、注意深く API を選択して 1.0 から使えるものだけを用いてコードを記述すれば、MIDP 1.0 でも動作するアプリケーションを作成できそうに思うかもしれませんが、残念ながらそうなっていません。

例えば MIDP 1.0 では Image オブジェクトの可変タイプと不変タイプは明確に分けられており、高レベル UI コンポーネントは不変タイプの Image オブジェクトのみを受け入れます(例:MIDP 1.0 の ImageItem)が MIDP 2.0 では可変タイプでも受け入れます(例:MIDP 2.0 の ImageItem)。可変タイプの場合は受け入れる際に、自動的にその時の状態のコピー(スナップショット)を不変タイプで作成して、それを用いることでこの仕組みを実現しています。MIDP 2.0 の API リファレンスには、この仕組みについては言及があるものの MIDP 1.0 ではこの仕組みが無いことは説明していません。

このため MIDP 2.0 の API リファレンスだけを見て作成すると MIDP 1.0 では動作しないアプリケーションを作成してしまうことに繋がります。

まとめ

このように MIDP 1.0 向けのアプリケーションを作成する場合には、依然として MIDP 1.0 の API リファレンスを参照すべきです。そして、できれば MIDP 2.0 の仕様も確認し、拡張された仕様がしないかをチェックするといいでしょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です