IIJIMASが勉強しようとしています。

これからこれから♪

目次

Blog 利用状況

ニュース

共著:




わんくま同盟 東京勉強会 #99 私の資料

個数を数えてみたい!

わんくま同盟 東京勉強会 #91 私の資料

きっと楽しいトポロジー

わんくま同盟 東京勉強会 #45 数学デー 私の資料(pptxとxlsx)

確率の不思議

わんくま同盟 東京勉強会 #37 私のLT資料

数の冪の和の式 を求めてみよう!

デブサミ09でわんくま同盟の紹介をしたスライド

わんくま同盟 東京勉強会 #26 LT祭りの私のスライド

わんくま同盟 東京勉強会 #23の私のスライド

わんくま同盟 東京勉強会 #18の私のスライド


自己紹介(仮)

IIJIMASと申します。
東京都多摩市在住です。多摩川のそばです。
猫好きです。
IIJIMASのSは何って言われます。 IIJIMASって
なんて読むかは自由です。
魚や網間企業とゲームとは無関係です。
数学とか宇宙とかの読み物とか好きです。
血液型:果汁100%A
メタボ予備軍。。。orz
Twitter

...............
MVP 審査応募ページ~ 求む、日本のMVP。
MCTS:.NET Framework 2.0: Windows アプリケーション
MCTS:.NET Framework 2.0: Windows アプリケーション

MCSD.NET:マイクロソフト認定ソリューションデベロッパー(MCSD) Microsoft .NET トラック
Microsoft Certified Solution Developer for Microsoft.NET

リンク

わんくま同盟
わんくま同盟

C#VB.NET掲示板
C#VB.NET掲示板

わんくま同盟 Blog's

ちょっと一言(仮)


書庫

日記カテゴリ

久々のJavaでハマりかけた...orzこと。(その一)

久々のエントリです…皆さんがすごい深い内容ばかりエントリしてるので、おじけずいてエントリできませんでした…orz
気づくと半月もの間何もエントリしてませんでした…orzもう開き直ってマイペースに気楽にエントリすることにしました…

以下の内容は某SNS日記にも書いた気がしますが(^^;

Java6のソースコードとJava1.4のソースコードは互換性がなかった…

Java1.4のとき
java.sql.PreparedStatementインタフェース
http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/PreparedStatement.html
java.sql.Statementインタフェース
http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/Statement.html
などを実装したJDBCのラッパークラスを作っていました。

Java6ではこれらのインタフェースにそれぞれメソッドがいろいろと「追加」されてます。

あたりまえですがこれらを実装したクラスで、追加されたメソッドを「実装」しないとJava6ではコンパイルできません。…orz
入出力にJava6で追加になったクラスを使うものもあるので、メソッドを追加するとそのコードは今後はJava1.4でコンパイルできません。
たまたまこの話はJavaでしたが、これって、一般にオブジェクト指向言語の「インタフェース」のデメリットもしくは注意点なのでは?

「インタフェース」は公開してからは、「メソッドの削除」は原則不可能だということはわかっていましたが、「メソッドの追加」も慎重にすべきですね…

投稿日時 : 2008年2月19日 1:06

コメントを追加

# re: 久々のJavaでハマりかけた...orzこと。(その一) 2008/02/19 11:39 とっちゃん

interface は公開後の改編は何があってもNGです。
削除はおろか、追加や引数の変更もです。

どうしても、変更(追加)が必要となった場合は新たに派生インターフェース(言語によっては派生ではなく、新しいインターフェースの場合もあります)を用意し、それはオプションとして使えるようにする。

となっていなければなりません。

ま、現実的にはここまで徹底してというのはほとんどありませんがねw

# re: 久々のJavaでハマりかけた...orzこと。(その一) 2008/02/19 12:07 IIJIMAS

とっちゃんコメントありがとうございます!

>interface は公開後の改編は何があってもNGです。
>削除はおろか、追加や引数の変更もです。
>どうしても、変更(追加)が必要となった場合は新たに派生インターフェース(言語によっては派生ではなく、新しいインターフェースの場合もあります)を用意し、それはオプションとして使えるようにする。

ですよね。。。
だそうですよw>某S社の中の方。

>ま、現実的にはここまで徹底してというのはほとんどありませんがねw

言語やプログラムが拡張できないと進化していかないというのもありますしね^^;;
生物の遺伝子も「コピーミス」が起きなければ、微生物はいつまでたっても微生物のままで、人類なんて登場しませんね^^;;;;;

タイトル
名前
URL
コメント